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

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