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

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