Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í.
Pro autory frameworků toto rozšíření vyžaduje stabilní identifikátory UID testovacích uzlů a správné zpracování filtrů požadavků. Opakování spustí nový testovací proces a vybere neúspěšné testy pomocí --filter-uid. Pokud váš framework ignoruje TestNodeUidListFilter, může znovu spustit nevybrané testy místo spuštění pouze neúspěšných testů.
Počínaje verzí MTP 2.4.0 souhrn opakování uvádí samostatné počty flaky a retried a seznam obnovených názvů testů v části Flaky tests. Aby se zabránilo zavádějícím součtům, MTP netiskne souhrn celé sady pro filtrované opakované pokusy po prvním pokusu. Pomocí možnosti reportéru terminálu --show-flaky-tests zobrazíte nebo skryjete podrobnosti o nestabilních testech.
Každý pokus o opakování zapíše artefakty reportu do adresáře Retries. 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ů z 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 pro každý 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.