Test z dowolnej przyczyny może się nie powieść – czasami zwykłe ponowne uruchomienie umożliwiające jego ponowne potwierdzenie (ze względu na niestabilne działanie, np. z powodu problemów infrastruktury bazowej). Możesz skonfigurować Tradefed, aby przeprowadzić ponowną próbę automatycznie.
Podstawą automatycznego ponawiania jest unikanie ponownego uruchamiania wszystkich testów. uruchamia się ponownie. tylko nieudane testy, co znacznie skraca czas wykonywania.
Tradefed obsługuje również wielokrotne przeprowadzanie testów w celu wykrywania niestabilności przy użyciu funkcji iteracji. W tym przypadku wszystkie testy , a test zakończy się niepowodzeniem, jeśli któraś z iteracji się nie powiedzie.
Włącz automatyczne ponawianie
Automatyczna ponowna próba jest kontrolowana za pomocą
Obiekt PonówDecision
który udostępnia 2 opcje włączenia tej funkcji: max-testcase-run-count
i retry-strategy
.
max-testcase-run-count
zwiększa liczbę ponownych prób lub iteracji, które
które można podjąć. Określa górną granicę, która zapobiega ponawianiu prób w nieskończoność.
retry-strategy
podejmuje decyzję o sposobie ponowienia próby. zapoznaj się z sekcjami poniżej
.
Wyłącz automatyczne ponawianie próby
Użyj tej opcji:
--retry-strategy NO_RETRY
Nieudane ponowienia
Aby ponownie spróbować nieudanych testów, użyj tych opcji:
--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X
Spowoduje to ponawianie próby, dopóki nie minie lub do maksymalnej liczby ponownych prób w zależności od tego, co nastąpi wcześniej.
Iteracje
Aby uruchomić testy ponownie przez pewien czas, możesz skorzystać z tych opcji:
--retry-strategy ITERATIONS --max-testcase-run-count X
Jak wyglądają wyniki?
Raporty wyników domyślnie otrzymują zbiorcze wyniki wszystkich prób.
Na przykład: Fail
i Pass
dla RETRY_ANY_FAILURE
dadzą wartość
zagregowane Pass
od czasu ponownej próby usunięcia błędu.
Reporterki mogą otrzymać wyniki zawierające niezagregowane dane. Aby to zrobić: muszą przedłużyć Interfejs ISupportGranularResults , który deklaruje obsługę szczegółowych (niezagregowanych) wyników.
Szczegóły implementacji
Aby włączyć automatyczne ponawianie prób w celu ponownego uruchomienia błędów na poziomie przypadku testowego, zaimplementuj ITestFilterReceiver.
Jeśli nie można zaimplementować parametru ITestFilterReceiver, IAutoRetriableTest (w języku angielskim) aby ręcznie kontrolować działanie ponownego uruchamiania. Test zainstalowanych narzędzi .