שימוש חוזר בחבילה

חבילה כוללת בדרך כלל כמה מודולים לבדיקה והיא יכולה להגיע לבדוק את גודל הקורפוס. לדוגמה, הכלי לבדיקת תאימות ל-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

כדי שהניסיון החוזר יפעל, צריך לייצא את התוצאות הקודמות לחשבון בפורמט פרוטו. צריך להוסיף את הפריטים הבאים:

<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />

צריך להוסיף אותו לתצורת ה-XML של הפקודה הראשית, התוצאה היא קובץ test-record.pb בתיקיית התוצאות.

לאחר מכן, ה-CTS טוען נתונים משילוב של test-record.pb את test_result.xml הקיים כדי להכין את ההפעלה של הניסיונות החוזרים.