Coba Ulang

Fitur ini memerlukan paket NuGet Microsoft.Testing.Extensions.Retry .

Petunjuk / Saran

Saat menggunakan Microsoft.Testing.Platform.MSBuild (disertakan secara transitif oleh runner MSTest, NUnit, dan xUnit), ekstensi ini didaftarkan secara otomatis saat Anda menginstal paket NuGet-nya — tidak diperlukan perubahan kode. Pendaftaran manual di bagian berikut hanya diperlukan jika Anda menonaktifkan titik masuk yang dihasilkan secara otomatis dengan mengatur <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Pendaftaran manual

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

Coba Ulang

Ekstensi ketahanan pengujian .NET dan penanganan kesalahan sementara.

Ekstensi ini ditujukan untuk pengujian integrasi di mana pengujian sangat bergantung pada keadaan lingkungan dan dapat mengalami kesalahan sementara.

Nota

Paket dikirim dengan lisensi Microsoft.Testing.Platform Tools yang ketat. Lisensi lengkap tersedia di https://www.nuget.org/packages/Microsoft.Testing.Extensions.Retry/1.0.0/License.

Opsi

Option Deskripsi
--retry-failed-tests Jalankan ulang tes yang gagal hingga berhasil atau hingga jumlah upaya maksimum tercapai. Diperlukan untuk mengaktifkan ekstensi.
--retry-failed-tests-max-percentage Menghindari pengulangan pengujian ketika persentase kasus pengujian yang gagal melebihi ambang yang ditentukan. Tidak dapat dikombinasikan dengan --retry-failed-tests-max-tests. Membutuhkan --retry-failed-tests.
--retry-failed-tests-max-tests Menghindari pengulangan pengujian ketika jumlah kasus uji yang gagal melewati batas yang ditentukan. Tidak dapat dikombinasikan dengan --retry-failed-tests-max-percentage. Membutuhkan --retry-failed-tests.
--retry-failed-tests-delay Menambahkan penundaan antara percobaan ulang. Penundaan dinyatakan sebagai nilai waktu, misalnya 200, , 500ms, 1s2.5m, 1h, atau 1d. Unit default adalah milidetik. Membutuhkan --retry-failed-tests. Tersedia di MTP yang dimulai dengan versi 2.3.0.

Kedua opsi ambang batas (--retry-failed-tests-max-percentage dan --retry-failed-tests-max-tests) memerlukan --retry-failed-tests juga diatur.

Dimulai dengan MTP 2.4.0, ringkasan coba lagi melaporkan nama pengujian terpisah flaky dan retried hitungan dan daftar yang dipulihkan di bawah pengujian Flaky. Untuk menghindari total yang menyesatkan, MTP tidak mencetak ringkasan rangkaian lengkap untuk upaya coba lagi yang difilter setelah upaya pertama. Gunakan opsi wartawan --show-flaky-tests terminal untuk menampilkan atau menyembunyikan detail yang tidak jelas.

Setiap upaya coba lagi menulis artefak laporannya di Retries bawah direktori. Untuk JUnit, laporan tingkat atas hanya mewakili upaya coba lagi yang difilter akhir, bukan rangkaian lengkap asli; kumpulkan laporan upaya sebelumnya dari Retries saat CI Anda memerlukan cakupan lengkap. Tata letak ini berlaku untuk --retry-failed-tests. Dalam proses [Retry] MSTest malah menciutkan upaya yang diganti menjadi satu hasil JUnit atau TRX akhir per pengujian.

Contoh

Coba lagi pengujian yang gagal hingga 3 kali:

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

Coba lagi pengujian yang gagal hingga 2 kali, tetapi berhenti mencoba kembali jika lebih dari 50% pengujian gagal:

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

Coba lagi pengujian yang gagal hingga 3 kali, tetapi berhenti mencoba kembali jika lebih dari 10 pengujian gagal:

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

Keterbatasan

  • Tidak didukung pada platform browser.
  • Tidak didukung dalam mode hot reload.