Retry

Ta funkcja wymaga pakietu NuGet Microsoft.Testing.Extensions.Retry .

Wskazówka

W przypadku korzystania z Microsoft.Testing.Platform.MSBuild (włączonego przechodnio w narzędzia uruchomieniowe MSTest, NUnit i xUnit), to rozszerzenie jest automatycznie rejestrowane podczas instalowania pakietu NuGet — bez konieczności wprowadzania zmian w kodzie. Rejestracja ręczna w poniższej sekcji jest wymagana tylko w przypadku wyłączenia automatycznie wygenerowanego punktu wejścia przez ustawienie .<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>

Rejestracja ręczna

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddRetryProvider();

Retry

Rozszerzenie odporności testów .NET i obsługi błędów przejściowych.

To rozszerzenie jest przeznaczone do testów integracji, w których test zależy w dużym stopniu od stanu środowiska i może wystąpić przejściowe błędy.

Uwaga / Notatka

Pakiet jest dostarczany z restrykcyjną licencją Microsoft.Testing.Platform Tools. Pełna licencja jest dostępna na stronie https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.

Opcje

Option Opis
--retry-failed-tests Uruchamia ponownie wszystkie testy, które zakończyły się niepowodzeniem, dopóki nie przejdą pomyślnie lub do momentu osiągnięcia maksymalnej liczby prób. Wymagane do aktywowania rozszerzenia.
--retry-failed-tests-max-percentage Unika ponownego uruchamiania testów, gdy procent przypadków testowych, które zakończyły się niepowodzeniem, przekracza określony próg. Nie można połączyć z --retry-failed-tests-max-tests. Wymaga --retry-failed-tests.
--retry-failed-tests-max-tests Unika ponownego uruchamiania testów, gdy liczba zakończonych niepowodzeniem przypadków testowych przekracza określony limit. Nie można połączyć z --retry-failed-tests-max-percentage. Wymaga --retry-failed-tests.
--retry-failed-tests-delay Dodaje opóźnienie między ponownymi próbami. Opóźnienie jest wyrażane jako wartość czasu, na przykład 200, 500ms, 1s, 2.5m, 1hlub 1d. Jednostka domyślna to milisekundy. Wymaga --retry-failed-tests. Dostępne w MTP począwszy od wersji 2.3.0.

Obie opcje progowe (--retry-failed-tests-max-percentage i --retry-failed-tests-max-tests) wymagają, aby --retry-failed-tests było również ustawione.

Począwszy od protokołu MTP 2.4.0, raporty podsumowania ponawiania są oddzielone flaky i retried zliczane i wyświetlają odzyskane nazwy testów w ramach testów Flaky. Aby uniknąć mylących sum, usługa MTP nie wyświetla podsumowania pełnego zestawu dla przefiltrowanych prób ponawiania prób po pierwszej próbie. Użyj opcji reportera terminalu --show-flaky-tests , aby pokazać lub ukryć łuszczący się szczegóły.

Każda próba ponawiania próby zapisuje artefakty raportu w Retries katalogu. W przypadku aplikacji JUnit raport najwyższego poziomu reprezentuje tylko ostateczną odfiltrowaną próbę ponawiania, a nie oryginalny pełny pakiet; zbierz wcześniejsze raporty dotyczące prób, Retries gdy ciągła integracja wymaga pełnego pokrycia. Ten układ ma zastosowanie do --retry-failed-tests. Zamiast tego [Retry] proces MSTest zwija zastąpione próby do jednego końcowego wyniku JUnit lub TRX na test.

Przykłady

Ponów nieudane testy maksymalnie 3 razy.

dotnet run --project Contoso.MyTests -- --retry-failed-tests 3

Ponawiaj nieudane testy do 2 razy, ale przestań ponawiać, jeśli nie powiodło się więcej niż 50% testów.

dotnet run --project Contoso.MyTests -- --retry-failed-tests 2 --retry-failed-tests-max-percentage 50

Ponów nieudane testy maksymalnie 3 razy, ale przestań ponawiać, jeśli nie powiedzie się więcej niż 10 testów.

dotnet run --project Contoso.MyTests -- --retry-failed-tests 3 --retry-failed-tests-max-tests 10

Ograniczenia

  • Nieobsługiwane na platformach przeglądarki.
  • Nieobsługiwane w trybie hot reload.