ลองทดสอบใหม่โดยอัตโนมัติ

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

เป็นไปได้ที่ผู้รายงานจะได้รับผลลัพธ์ที่ไม่ได้รวบรวมไว้ ในการทำเช่นนั้น พวกเขาจำเป็นต้องขยาย อินเทอร์เฟซ ISupportGranularResults ที่ประกาศการสนับสนุนสำหรับผลลัพธ์แบบละเอียด (ไม่รวมรวม)

รายละเอียดการดำเนินการ

หากต้องการเปิดใช้งานการลองใหม่อัตโนมัติเพื่อรันความล้มเหลวอีกครั้งในระดับกรณีทดสอบ ให้ใช้ ITestFilterReceiver

หากคุณไม่สามารถใช้ ITestFilterReceiver ได้ คุณสามารถใช้ IAutoRetriableTest เพื่อควบคุมวิธีการรันซ้ำด้วยตนเอง InstalledInstrumentationsTest คือตัวอย่างการใช้งานอินเทอร์เฟซนั้น