ניסיון חוזר אוטומטי לבדיקה

בדיקה עשויה להיכשל מכל סיבה שהיא, ולפעמים פשוט הפעלה מחדש של הבדיקה מספיקה כדי שהיא תעבור שוב (בגלל חוסר עקביות, למשל בגלל בעיות בתשתית הבסיסית). אפשר להגדיר ל-Tradefed לבצע את הניסיון החוזר באופן אוטומטי.

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

ב-Trended אפשר גם להריץ בדיקות כמה פעמים כדי לזהות גמישות באמצעות התכונה איטרציות. במקרה כזה, כל הבדיקות ירוצו מחדש, והבדיקה תיכשל אם אחת מהחזרות על הבדיקה תיכשל.

הפעלת ניסיון חוזר אוטומטי

הניסיון החוזר האוטומטי נשלט באמצעות האובייקט RetryDecision, שמספק שתי אפשרויות להפעלת התכונה: max-testcase-run-count ו-retry-strategy.

max-testcase-run-count קובע את מספר הניסיונות החוזרים או החזרות (iterations) שיתבצעו. הוא מגדיר גבול עליון כדי למנוע ניסיונות חוזרים ללא הגבלה. 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 מצטבר, כי הניסיון החוזר הצליח לפתור את התקלה.

דיווחים יכולים לקבל את התוצאות הלא מצטברות. כדי לעשות את זה, הם צריכים להרחיב את הממשק של ISupportGranular Results שמצהיר על תמיכה בתוצאות המפורטות (לא נצברות).

פרטי ההטמעה

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

אם אי אפשר להטמיע את ITestFilterReceiver, אפשר להטמיע את IAutoRetriableTest כדי לשלוט באופן ידני באופן הפעלת ההרצה מחדש. InstalledInstrumentationsTest הוא הטמעה לדוגמה של הממשק הזה.