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

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