חבילה בדרך כלל כוללת כמה מודולים של בדיקות, והיא יכולה להגיע לגודל די גדול של קורפוס בדיקות. לדוגמה, חבילת בדיקות התאימות (CTS) של Android כוללת מאות מודולים ומאות אלפי תרחישי בדיקה.
יכול להיות שמספר גדול של בדיקות ייכשלו בגלל בידוד לקוי או בגלל שמכשירים נכנסים למצב לא תקין.
התכונה 'ניסיון חוזר של חבילת בדיקות' נועדה לטפל במקרים האלה: היא מאפשרת לנסות שוב רק את הבדיקות שנכשלו במקום את כל חבילות הבדיקות, כדי לשלול חוסר יציבות ובידוד לקוי. אם בדיקה נכשלת באופן עקבי, הניסיון החוזר נכשל גם הוא, ואתם מקבלים אות חזק יותר שיש בעיה אמיתית.
הטמעה של ניסיון חוזר של חבילת הבדיקות
הניסיון החוזר של התוצאות כולל קריאה של התוצאות הקודמות והפעלה מחדש של הקריאה הקודמת.
הממשק הראשי שמפעיל את הניסיון החוזר הוא 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
הקיים כדי להכין את הקריאה לניסיון החוזר.