חבילה בדרך כלל כוללת כמה מודולים של בדיקות, והיא יכולה להגיע לגודל גדול למדי של קורפוס בדיקות. לדוגמה, חבילת הבדיקות לתאימות עם 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 כי אנחנו מנסים שוב לבצע פקודה שכללה רק אותו.
הגדרת ניסיון חוזר לחבילה בסגנון CTS
כדי שהניסיון החוזר יפעל, צריך לייצא את התוצאות הקודמות בפורמט proto. צריך להוסיף את הפרטים הבאים:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
צריך להוסיף את זה להגדרת ה-XML של הפקודה הראשית, וכתוצאה מכך נוצר קובץ test-record.pb בתיקיית התוצאות.
הניסיון החוזר של CTS טוען נתונים משילוב של test-record.pb ושל test_result.xml הקיים כדי להכין את הקריאה לניסיון החוזר.