Automatyczne ponowienie testu

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 .