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

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