ชุดโปรแกรมมักมีโมดูลทดสอบหลายรายการ และสามารถเข้าถึง ขนาดคลังข้อมูลทดสอบ เช่น ชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) ประกอบด้วยโมดูลหลายร้อยรายการและกรณีทดสอบหลายแสนรายการ
การทดสอบจำนวนมากอาจล้มเหลวได้เพราะการแยกตัวที่ไม่ดี หรืออุปกรณ์อยู่ในสถานะไม่ดี
ฟีเจอร์การลองชุดทดสอบอีกครั้งมีไว้เพื่อจัดการกับกรณีดังกล่าว โดยจะช่วยให้คุณลองทดสอบเฉพาะรายการที่ดำเนินการไม่สำเร็จแทนการทดสอบทั้งชุด เพื่อตัดปัญหาความไม่เสถียรและการแยกที่ไม่สมบูรณ์ หากการทดสอบล้มเหลวอย่างต่อเนื่อง ความพยายามซ้ำก็จะล้มเหลวเช่นกัน และ คุณจะได้รับสัญญาณที่ชัดเจนขึ้นว่ามีปัญหาเกิดขึ้นจริง
ติดตั้งใช้งานชุดโปรแกรมอีกครั้ง
การลองแสดงผลลัพธ์ใหม่รวมถึงการอ่านผลลัพธ์ก่อนหน้าและเรียกใช้ การเรียกใช้ก่อนหน้า
อินเทอร์เฟซหลักที่ทําให้ลองอีกครั้งคือ ITestSuiteResultLoader
ซึ่งช่วยให้คุณโหลดผลลัพธ์ก่อนหน้าและบรรทัดคําสั่งก่อนหน้าได้
RetryRescheduler
จากนั้นใช้ข้อมูลนี้เพื่อสร้างคําสั่งก่อนหน้าอีกครั้งและป้อนข้อมูลตัวกรองบางส่วนเพื่อเรียกใช้การทดสอบที่ไม่สําเร็จหรือไม่ได้ดําเนินการก่อนหน้านี้อีกครั้ง
ตัวอย่างชุดทดสอบที่ลองอีกครั้ง: CTS
การกำหนดค่าการลองอีกครั้งใน CTS มีดังนี้
<configuration description="Runs a retry of a previous CTS session.">
<object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
<test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />
<logger class="com.android.tradefed.log.FileLogger">
<option name="log-level-display" value="WARN" />
</logger>
</configuration>
ซึ่งใช้ได้กับชุดโปรแกรมส่วนใหญ่ที่ขยายการให้บริการ เช่น VTS
คำขอจะเรียกใช้ด้วย
cts-tradefed run retry --retry <session>
คุณจะพบเซสชันได้โดยการแสดงรายการผลลัพธ์ก่อนหน้านี้ในคอนโซล CTS
cts-tf > l r
Session Pass Fail Modules Complete Result Directory Test Plan Device serial(s) Build ID Product
0 2092 30 148 of 999 2018.10.29_14.12.57 cts [serial] P Pixel
คำสั่งเดิมที่ถูกต้องจะโหลดซ้ำและเรียกใช้อีกครั้งโดยมีตัวกรองเพิ่มเติม ซึ่งหมายความว่าหากคำสั่งเดิมมีตัวเลือกบางอย่าง ตัวเลือกเหล่านั้นจะเป็นส่วนหนึ่งของการลองอีกครั้งด้วย
เช่น
cts-tradefed run cts-dev -m CtsGestureTestCases
การลองอีกครั้งของคำสั่งข้างต้นจะเชื่อมโยงกับ CtsGestureTestCases
เสมอ เนื่องจากเรากำลังลองใช้คำสั่งที่เกี่ยวข้องกับ CtsGestureTestCases
เท่านั้น
กำหนดค่าการลองอีกครั้งสำหรับชุดรูปแบบ CTS
คุณต้องส่งออกผลลัพธ์ก่อนหน้าในรูปแบบ proto เพื่อให้การลองอีกครั้งทํางานได้ โดยจำเป็นต้องเพิ่มสิ่งต่อไปนี้
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
จำเป็นต้องเพิ่มการกำหนดค่านี้ลงในการกำหนดค่า XML ของคำสั่งหลักและคำสั่ง
ทำให้มีการสร้างไฟล์ test-record.pb
ในโฟลเดอร์ผลการค้นหา
จากนั้น CTS อีกครั้งจะโหลดข้อมูลจากชุดค่าผสมของ test-record.pb
และ
test_result.xml
ที่มีอยู่เพื่อเตรียมการเรียกใช้อีกครั้ง