測試可能會因任何原因而失敗,有時只要重新執行測試就是 因此會因為火災情勢而重新傳遞 不需要底層基礎架構您可以設定 Tradefed 自動執行重試。
自動重試的核心是避免重新執行「所有」測試。就會再次執行 測試失敗,因此可大幅節省執行時間。
Tradefed 也支援多次執行測試,以便透過疊代功能偵測錯誤。在這個範例中,所有測試都會 重新執行,如果任何疊代失敗,測試就會失敗
啟用自動重試
自動重試功能是透過
重試決策物件
提供了兩種啟用這項功能的選項:max-testcase-run-count
和 retry-strategy
。
max-testcase-run-count
會決定重試或嘗試疊代次數。並設定上限,避免永久重試。
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
,因為重試已成功清除失敗。
回報者可能會收到非匯總結果。為此,他們需要擴充 ISupportGranularResults 介面,宣告支援精細 (非匯總) 結果。
導入作業詳細資料
如要啟用自動重試功能,以便在測試案例層級重新執行失敗項目,請實作 ITestFilterReceiver。
如果無法實作 ITestFilterReceiver IAutoRetriableTest 手動控制重新執行的方式 InstalledInstrumentationsTest 是該介面的實作範例。