Pakiet składa się zwykle z kilku modułów testowych i może docierać do sporego rozmiar korpusu testowego. Na przykład: Android Compatibility Test Suite (CTS). zawiera setki modułów i setki tysięcy przypadków testowych.
Duża liczba testów może zakończyć się niepowodzeniem z powodu słabej izolacji lub urządzeń będących w złym stanie.
Funkcja ponawiania prób w pakiecie ma pomóc w tych przypadkach: umożliwia ponawianie a nie tylko całego zestawu, aby uniknąć niestabilności słaba izolacja. Jeśli test stale kończy się niepowodzeniem, ponowna próba też się nie powiedzie. oraz otrzymujesz znacznie silniejszy sygnał, że rzeczywiście problem występuje.
Ponów próbę wdrożenia pakietu
Ponowienie próby polega na odczytaniu poprzednich wyników i ponownym uruchomieniu poprzedniego wywołania.
Główny interfejs powodujący ponowienie próby to ITestSuiteResultLoader
,
który pozwala wczytać poprzedni wynik i poprzedni wiersz poleceń.
RetryRescheduler
a następnie za pomocą tych informacji odtworzy poprzednie polecenie i uzupełni niektóre
filtry pozwalające ponownie uruchomić tylko wcześniejsze błędy lub nieprzeprowadzono testów.
Ponowna próba wyświetlenia przykładowego pakietu: CTS
Konfiguracja ponawiania w 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>
To dotyczy większości pakietów, które je rozszerzają, na przykład VTS.
W takiej sytuacji to:
cts-tradefed run retry --retry <session>
Sesję można znaleźć, wyświetlając listę poprzednich wyników w konsoli 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
Dokładne polecenie oryginalne zostanie wczytane ponownie i uruchomione ponownie z dodatkowymi filtrami. Ten co oznacza, że jeśli pierwotne polecenie zawierało jakieś opcje, zostaną one również a potem spróbować ponownie.
Na przykład:
cts-tradefed run cts-dev -m CtsGestureTestCases
Ponowienie tego działania jest zawsze powiązane z adresem CtsGestureTestCases
, ponieważ
ponawiamy polecenie, które dotyczyło tylko tego elementu.
Skonfiguruj ponawianie w pakiecie w stylu CTS
Aby ponowienie zadziałało, poprzednie wyniki musisz wyeksportować w w formacie proto. Musisz dodać te elementy:
<result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
Trzeba go dodać do konfiguracji XML polecenia głównego.
powoduje utworzenie pliku test-record.pb
w folderze wyników.
Następnie CTS ponów próbę, a następnie wczytuje dane z kombinacji tych danych: test-record.pb
i
istniejące test_result.xml
, aby przygotować ponowne wywołanie.