Retry

Den här funktionen kräver NuGet-paketet Microsoft.Testing.Extensions.Retry .

Tips/Råd

När du använder Microsoft.Testing.Platform.MSBuild (ingår transitivt av MSTest, NUnit och xUnit-löpare) registreras det här tillägget automatiskt när du installerar dess NuGet-paket – inga kodändringar behövs. Den manuella registreringen i följande avsnitt krävs bara om du inaktiverade den automatiskt genererade startpunkten genom att ange <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Manuell registrering

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

Retry

Ett .NET-tillägg för test av motståndskraft och hantering av övergående fel.

Det här tillägget är avsett för integreringstester där testet är starkt beroende av miljöns tillstånd och kan uppleva tillfälliga fel.

Anmärkning

Paketet levereras med den restriktiva licensen Microsoft.Testing.Platform Tools. Den fullständiga licensen är tillgänglig på https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.

Alternativ

Alternativ Description
--retry-failed-tests Kör om misslyckade tester tills de har godkänts eller tills det maximala antalet försök har nåtts. Krävs för att aktivera tillägget.
--retry-failed-tests-max-percentage Undviker att köra tester igen när procentandelen misslyckade testfall överskrider det angivna tröskelvärdet. Det går inte att kombinera med --retry-failed-tests-max-tests. Kräver --retry-failed-tests.
--retry-failed-tests-max-tests Undviker att köra tester igen när antalet misslyckade testfall överskrider den angivna gränsen. Det går inte att kombinera med --retry-failed-tests-max-percentage. Kräver --retry-failed-tests.
--retry-failed-tests-delay Lägger till en fördröjning mellan återförsök. Fördröjningen uttrycks som ett tidsvärde, till exempel 200, 500ms, 1s, 2.5m, 1heller 1d. Standardenheten är millisekunder. Kräver --retry-failed-tests. Finns i MTP från och med version 2.3.0.

Båda tröskelalternativen (--retry-failed-tests-max-percentage och --retry-failed-tests-max-tests) måste --retry-failed-tests också anges.

Från och med MTP 2.4.0 rapporterar sammanfattningen för återförsök separata flaky och retried räknar och listar återställda testnamn under Flagnande tester. För att undvika vilseledande summor skriver MTP inte ut en fullständig sammanfattning för filtrerade återförsök efter det första försöket. Använd terminalreporterns --show-flaky-tests alternativ för att visa eller dölja flagnande information.

Varje nytt försök skriver rapportartefakter under Retries katalogen. För JUnit representerar rapporten på den översta nivån endast det slutliga filtrerade återförsöksförsöket, inte den ursprungliga fullständiga sviten. samla in tidigare försöksrapporter från Retries när din CI kräver fullständig täckning. Den här layouten gäller för --retry-failed-tests. MSTests pågående döljer [Retry] i stället ersatta försök till ett sista JUnit- eller TRX-resultat per test.

Exempel

Försök igen misslyckade tester upp till 3 gånger:

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

Försök igen misslyckade tester upp till 2 gånger, men sluta försöka igen om fler än 50% av testerna misslyckades:

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

Försök igen misslyckade tester upp till 3 gånger, men sluta försöka igen om fler än 10 tester misslyckades:

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

Begränsningar

  • Stöds inte på webbläsarplattformar.
  • Stöds inte i hot reload läge.