การทดสอบอาจล้มเหลวไม่ว่าด้วยสาเหตุใดก็ตาม และบางครั้งเพียงแค่เรียกใช้การทดสอบซ้ำก็เพียงพอที่จะทำให้การทดสอบผ่านอีกครั้ง (เนื่องจากความไม่แน่นอน เช่น จากปัญหาในโครงสร้างพื้นฐานพื้นฐาน) คุณสามารถกำหนดค่า Tradefed ให้ทำการลองใหม่โดยอัตโนมัติ
หลักของการลองใหม่อัตโนมัติคือการหลีกเลี่ยงการเรียกใช้การทดสอบ ทั้งหมด ซ้ำ โดยจะเรียกใช้ซ้ำเฉพาะการทดสอบที่ล้มเหลว ส่งผลให้ประหยัดเวลาในการดำเนินการได้มาก
Tradefed ยังรองรับการทดสอบการทำงานหลายครั้งเพื่อตรวจจับความไม่แน่นอนผ่านคุณสมบัติ การวนซ้ำ ในกรณีนี้ การทดสอบทั้งหมดจะถูกรันใหม่ และการทดสอบจะล้มเหลวหากมีการทำซ้ำใดๆ ล้มเหลว
การเปิดใช้งานคุณสมบัติ
การลองใหม่อัตโนมัติจะถูกควบคุมผ่าน ออบเจ็กต์ RetryDecision ซึ่งมีสองตัวเลือกในการเปิดใช้งานคุณสมบัติ: 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
and a Pass
สำหรับ RETRY_ANY_FAILURE
จะส่งผลให้ Pass
รวมเนื่องจากการลองอีกครั้งเพื่อล้างความล้มเหลว
เป็นไปได้ที่นักข่าวจะได้รับผลที่ไม่รวม ในการทำเช่นนั้น พวกเขาจำเป็นต้องขยาย อินเทอร์เฟซ ISupportGranularResults ที่ประกาศการสนับสนุนสำหรับผลลัพธ์แบบละเอียด (ไม่ใช่แบบรวม)
รายละเอียดการใช้งาน
หากต้องการเปิดใช้งานการลองใหม่อัตโนมัติเพื่อเรียกใช้ความล้มเหลวอีกครั้งที่ระดับกรณีทดสอบ ให้ใช้ ITestFilterReceiver
หากคุณไม่สามารถใช้ ITestFilterReceiver ได้ คุณสามารถใช้ IAutoRetriableTest เพื่อควบคุมวิธีการรันซ้ำได้ด้วยตนเอง InstalledInstrumentationsTest เป็นตัวอย่างการใช้งานอินเทอร์เฟซนั้น