Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu özellik , Microsoft.Testing.Extensions.Retry NuGet paketini gerektirir.
İpucu
Microsoft.Testing.Platform.MSBuild kullanırken (MSTest, NUnit ve xUnit çalıştırıcıları tarafından geçişli olarak dahil), NuGet paketini yüklediğinizde bu uzantı otomatik olarak kaydedilir; kod değişikliği gerekmez. Aşağıdaki bölümdeki el ile kayıt, yalnızca ayarıyla <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>otomatik olarak oluşturulan giriş noktasını devre dışı bırakmış olmanız durumunda gereklidir.
El ile kayıt
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddRetryProvider();
Yeniden Dene
.NET test dayanıklılığı ve geçici hata işleme uzantısı.
Bu uzantı, testin büyük ölçüde ortamın durumuna bağlı olduğu ve geçici hatalarla karşılaşabileceği tümleştirme testlerine yöneliktir.
Uyarı
Paket kısıtlayıcı Microsoft.Testing.Platform Araçları lisansıyla birlikte gönderilir. Tam lisansa https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/Licenseadresinden ulaşabilirsiniz.
Options
| Seçenek | Description |
|---|---|
--retry-failed-tests |
Başarısız testleri geçene kadar veya deneme sayısı üst sınırına ulaşılana kadar yeniden çalıştırır. Uzantıyı etkinleştirmek için gereklidir. |
--retry-failed-tests-max-percentage |
Başarısız test çalışmalarının yüzdesi belirtilen eşiği aştığında testlerin yeniden çalıştırılmasını önler.
--retry-failed-tests-max-tests ile birleştirilemez. gerektirir --retry-failed-tests. |
--retry-failed-tests-max-tests |
Başarısız test çalışmalarının sayısı belirtilen sınırı aştığında testlerin yeniden çalıştırılmasını önler.
--retry-failed-tests-max-percentage ile birleştirilemez. gerektirir --retry-failed-tests. |
--retry-failed-tests-delay |
Yeniden denemeler arasına gecikme ekler. Gecikme, veya 200gibi 500ms1s2.5m1h1dbir zaman değeri olarak ifade edilir. Varsayılan birim milisaniyedir. gerektirir --retry-failed-tests. 2.3.0 sürümünden itibaren MTP'de kullanılabilir. |
Her iki eşik seçeneğinin de (--retry-failed-tests-max-percentage ve --retry-failed-tests-max-tests) ayarlanması gerekir --retry-failed-tests .
Çerçeve yazarları için bu uzantı kararlı test düğümü UID'leri ve doğru istek filtresinin işlenmesini gerektirir. Yeniden deneme yeni bir test işlemi başlatır ve --filter-uid aracılığıyla başarısız testleri seçer. Çerçeveniz TestNodeUidListFilter öğesini yok sayarsa, yalnızca başarısız olan testler yerine seçilmemiş testleri yeniden çalıştırabilir.
MTP 2.4.0'dan başlayarak, yeniden deneme özeti flaky ve retried için ayrı sayıları raporlar ve kurtarılan test adlarını Flaky testleri altında listeler. Yanıltıcı toplamları önlemek için MTP, ilk denemeden sonra filtrelenmiş yeniden deneme girişimleri için tam paket özeti yazdırmaz. Kararsızlık ayrıntılarını göstermek veya gizlemek için terminal muhabirinin --show-flaky-tests seçeneğini kullanın.
Her yeniden deneme girişimi, rapor yapıtlarını Retries dizini altına yazar. JUnit için en üst düzey rapor, özgün tam paketi değil yalnızca son filtrelenmiş yeniden deneme denemesini temsil eder; CI’niz tam kapsam gerektiriyorsa, önceki deneme raporlarını Retries konumundan toplayın. Bu düzen için --retry-failed-testsgeçerlidir. MSTest'in işlem içi [Retry] ise geçersiz kılınan denemeleri test başına tek bir nihai JUnit veya TRX sonucunda toplar.
Örnekler
Başarısız testleri en fazla 3 kez yeniden deneyin:
dotnet run --project Contoso.MyTests -- --retry-failed-tests 3
Başarısız testleri en fazla 2 kez yeniden deneyin, ancak 50%'den fazla test başarısız olursa yeniden denemeyi durdurun:
dotnet run --project Contoso.MyTests -- --retry-failed-tests 2 --retry-failed-tests-max-percentage 50
Başarısız testleri en fazla 3 kez yeniden deneyin, ancak 10'dan fazla test başarısız olursa yeniden denemeyi durdurun:
dotnet run --project Contoso.MyTests -- --retry-failed-tests 3 --retry-failed-tests-max-tests 10
Sınırlamalar
- Tarayıcı platformlarında desteklenmez.
- Hot Reload modunda desteklenmiyor.