Retry

Tato funkce vyžaduje balíček NuGet Microsoft.Testing.Extensions.Retry .

Návod

Pokud používáte Microsoft.Testing.Platform.MSBuild (zahrnutý přenosně pomocí msTest, NUnit a xUnit runnerů), toto rozšíření se automaticky zaregistruje při instalaci balíčku NuGet – nevyžaduje se žádné změny kódu. Ruční registrace v následující části se vyžaduje pouze v případě, že jste zakázali automaticky vygenerovaný vstupní bod nastavením <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Ruční registrace

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

Retry

Rozšíření .NET pro testování odolnosti a zvládání přechodných chyb.

Toto rozšíření je určené pro integrační testy, ve kterých test silně závisí na stavu prostředí a může docházet k přechodným chybám.

Poznámka:

Balíček se dodává s omezující licencí Microsoft.Testing.Platform Tools. Úplná licence je k dispozici na https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.

Možnosti

Možnost Description
--retry-failed-tests Znovu spustí všechny neúspěšné testy, dokud neprojdou nebo dokud nedosáhne maximálního počtu pokusů. Vyžaduje se k aktivaci rozšíření.
--retry-failed-tests-max-percentage Zabrání opakovanému spuštění testů, když procento neúspěšných testovacích případů překročí zadanou prahovou hodnotu. Nedá se kombinovat s --retry-failed-tests-max-tests. Vyžaduje --retry-failed-tests.
--retry-failed-tests-max-tests Zabrání opakovanému spuštění testů, pokud počet neúspěšných testovacích případů překročí zadaný limit. Nedá se kombinovat s --retry-failed-tests-max-percentage. Vyžaduje --retry-failed-tests.
--retry-failed-tests-delay Přidá prodlevu mezi opakovanými pokusy. Zpoždění se vyjadřuje jako časová hodnota, například 200, 500ms, 1s, 2.5m, , 1hnebo 1d. Výchozí jednotka je milisekund. Vyžaduje --retry-failed-tests. K dispozici v MTP od verze 2.3.0.

Obě možnosti prahových hodnot (--retry-failed-tests-max-percentage i --retry-failed-tests-max-tests) vyžadují --retry-failed-tests také nastavení.

Počínaje MTP 2.4.0 se souhrnné sestavy opakování oddělují flaky a spočítávají retried a uvádí obnovené názvy testů v rámci flaky testů. Aby se zabránilo zavádějícím součtům, MTP netiskne souhrn celé sady pro filtrované pokusy o opakování po prvním pokusu. Pomocí možnosti zpravodaje terminálu --show-flaky-tests zobrazíte nebo skryjete podrobné podrobnosti.

Každý pokus o opakování zapíše artefakty sestavy do Retries adresáře. Pro JUnit představuje sestava nejvyšší úrovně pouze konečný filtrovaný pokus o opakování, nikoli původní úplnou sadu; shromážděte předchozí sestavy pokusů, od Retries kdy vaše CI vyžaduje úplné pokrytí. Toto rozložení platí pro --retry-failed-tests. In-process [Retry] MSTest místo toho sbalí nahrazované pokusy do jednoho konečného výsledku JUnit nebo TRX na test.

Příklady

Opakování neúspěšných testů až 3krát:

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

Opakování neúspěšných testů až 2krát, ale zastavte opakování, pokud selhalo více než 50 % testů.

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

Opakujte neúspěšné testy až třikrát, ale pokud selhalo více než 10 testů, přestaňte opakovat.

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

Omezení

  • Nepodporuje se na platformách prohlížeče.
  • Nepodporuje se v režimu hot reload.