การทดสอบอาจไม่สำเร็จด้วยเหตุผลใดก็ตาม และบางครั้งเพียงแค่เรียกใช้การทดสอบอีกครั้งก็ เพียงพอที่จะทำให้การทดสอบผ่านอีกครั้ง (เนื่องจากความไม่น่าเชื่อถือ เช่น จากปัญหาใน โครงสร้างพื้นฐาน) คุณสามารถกำหนดค่า Tradefed ให้ทำการลองอีกครั้งโดยอัตโนมัติได้
หัวใจสำคัญของการลองใหม่โดยอัตโนมัติคือการหลีกเลี่ยงการเรียกใช้การทดสอบทั้งหมดอีกครั้ง โดยจะเรียกใช้เฉพาะการทดสอบที่ไม่สำเร็จอีกครั้ง ซึ่งช่วยประหยัดเวลาในการดำเนินการได้มาก
นอกจากนี้ Tradefed ยังรองรับการเรียกใช้การทดสอบหลายครั้งเพื่อตรวจหา ความไม่เสถียรผ่านฟีเจอร์การทำซ้ำ ในกรณีนี้ ระบบจะ เรียกใช้การทดสอบทั้งหมดอีกครั้ง และการทดสอบจะล้มเหลวหากการวนซ้ำใดล้มเหลว
เปิดใช้การลองใหม่โดยอัตโนมัติ
การลองใหม่โดยอัตโนมัติจะควบคุมผ่าน
ออบเจ็กต์ RetryDecision
ซึ่งมี 2 ตัวเลือกในการเปิดใช้ฟีเจอร์ ได้แก่ max-testcase-run-count
และ retry-strategy
max-testcase-run-count
จะกำหนดจำนวนการลองใหม่หรือการวนซ้ำที่จะ
พยายามดำเนินการ โดยจะกำหนดขอบเขตบนเพื่อหลีกเลี่ยงการลองใหม่ไปเรื่อยๆ
retry-strategy
เป็นตัวกำหนดวิธีลองใหม่ ดูรายละเอียดเพิ่มเติมได้ในส่วนต่อไปนี้
ปิดใช้การลองใหม่โดยอัตโนมัติ
ใช้ตัวเลือกต่อไปนี้
--retry-strategy NO_RETRY
ลองดำเนินการที่ล้มเหลวอีกครั้ง
หากต้องการลองทดสอบที่ล้มเหลวอีกครั้ง ให้ใช้ตัวเลือกต่อไปนี้
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
การดำเนินการนี้จะลองใหม่จนกว่าจะสำเร็จหรือจนกว่าจะถึงจำนวนครั้งที่ลองใหม่สูงสุด แล้วแต่ว่าจะถึงอย่างใดก่อน
การทำซ้ำ
หากต้องการเรียกใช้การทดสอบอีกครั้งหลายๆ ครั้ง คุณสามารถใช้ตัวเลือกต่อไปนี้ได้
--retry-strategy ITERATIONS --max-testcase-run-count X
ผลลัพธ์มีลักษณะอย่างไร
โดยค่าเริ่มต้น ผู้รายงานผลลัพธ์จะได้รับผลลัพธ์รวมของการพยายามทั้งหมด
เช่น Fail
และ Pass
สำหรับ RETRY_ANY_FAILURE
จะส่งผลให้เกิด Pass
ที่รวบรวมแล้วเนื่องจากความพยายามใหม่สามารถแก้ไขข้อผิดพลาดได้
ผู้รายงานจะได้รับผลลัพธ์ที่ไม่ใช่ข้อมูลรวม โดยจะต้องขยาย อินเทอร์เฟซ ISupportGranularResults ที่ประกาศการรองรับผลลัพธ์แบบละเอียด (ไม่รวม)
รายละเอียดการติดตั้งใช้งาน
หากต้องการเปิดใช้การลองซ้ำอัตโนมัติเพื่อเรียกใช้ความล้มเหลวอีกครั้งที่ระดับกรณีทดสอบ ให้ใช้ ITestFilterReceiver
หากใช้ ITestFilterReceiver ไม่ได้ คุณสามารถใช้ IAutoRetriableTest เพื่อควบคุมด้วยตนเองว่าการเรียกใช้ซ้ำจะทำงานอย่างไร InstalledInstrumentationsTest เป็นตัวอย่างการติดตั้งใช้งานอินเทอร์เฟซดังกล่าว