Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Untuk penulis kerangka kerja, ekstensi ini memerlukan UID simpul pengujian yang stabil dan penanganan filter permintaan yang benar. Percobaan ulang meluncurkan proses pengujian baru dan memilih pengujian yang gagal melalui --filter-uid. Jika framework Anda mengabaikan TestNodeUidListFilter, framework dapat menjalankan ulang pengujian yang tidak dipilih alih-alih hanya pengujian yang gagal.
Dimulai dengan MTP 2.4.0, ringkasan percobaan ulang melaporkan hitungan flaky dan retried secara terpisah dan mencantumkan nama pengujian yang dipulihkan di bawah pengujian Flaky. Untuk menghindari total yang menyesatkan, MTP tidak mencetak ringkasan seluruh suite untuk percobaan ulang yang difilter setelah upaya pertama. Gunakan opsi --show-flaky-tests reporter terminal untuk menampilkan atau menyembunyikan detail flaky.
Setiap upaya coba lagi menulis artefak laporannya di bawah direktori Retries. Untuk JUnit, laporan tingkat atas hanya mewakili percobaan ulang terakhir yang telah difilter, bukan rangkaian lengkap asli; kumpulkan laporan percobaan sebelumnya dari Retries saat CI Anda memerlukan cakupan lengkap. Tata letak ini berlaku untuk --retry-failed-tests.
[Retry] in-process milik MSTest malah menciutkan percobaan yang digantikan 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.