ลองทดสอบอีกครั้งโดยอัตโนมัติ

การทดสอบอาจล้มเหลวไม่ว่าด้วยสาเหตุใดก็ตาม และบางครั้งเพียงแค่เรียกใช้การทดสอบซ้ำก็เพียงพอที่จะทำให้การทดสอบผ่านอีกครั้ง (เนื่องจากความไม่แน่นอน เช่น จากปัญหาในโครงสร้างพื้นฐานพื้นฐาน) คุณสามารถกำหนดค่า 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 เป็นตัวอย่างการใช้งานอินเทอร์เฟซนั้น