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.
Artikel ini berlaku untuk: ✔️ .NET 10 SDK dan versi yang lebih baru
Nama
dotnet test - .NET driver pengujian yang digunakan untuk menjalankan pengujian unit dengan MTP.
Sinopsis
dotnet test
[<PROJECT_OR_TRAVERSAL_PATH>]
[--project <PROJECT_PATH>]
[--solution <SOLUTION_PATH>]
[--test-modules <EXPRESSION>]
[--root-directory <ROOT_PATH>]
[--max-parallel-test-modules <NUMBER>]
[--config-file <CONFIG_FILE>]
[--results-directory <RESULTS_DIRECTORY>]
[--results-directory-layout <flat|per-module>]
[--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
[--minimum-expected-tests <NUMBER>]
[--maximum-failed-tests <NUMBER>]
[--timeout <DURATION>]
[-e|--environment <NAME="VALUE">]
[-a|--arch <ARCHITECTURE>]
[--artifacts-path <ARTIFACTS_DIR>]
[-c|--configuration <CONFIGURATION>]
[-f|--framework <FRAMEWORK>]
[--os <OS>]
[-r|--runtime <RUNTIME_IDENTIFIER>]
[--use-current-runtime|--ucr]
[-v|--verbosity <LEVEL>]
[--no-build]
[--no-dependencies]
[--no-restore]
[--nologo|--no-logo|--no-banner]
[--no-ansi]
[--no-progress]
[--no-artifact-post-processing]
[--output <VERBOSITY_LEVEL>]
[--show-test-results <OUTCOME>]
[--list-tests [text|json]]
[--no-launch-profile]
[--no-launch-profile-arguments]
[--device <DEVICE_ID>]
[--list-devices]
[--collect-test-map]
[--affected-tests]
[<args>...]
dotnet test -h|--help
Description
Dengan MTP, dotnet test beroperasi lebih cepat daripada dengan VSTest. Argumen terkait pengujian tidak lagi diperbaiki, karena terkait dengan ekstensi terdaftar dalam project pengujian. Selain itu, MTP mendukung filter globbing saat menjalankan pengujian. Untuk informasi selengkapnya, lihat MTP.
Important
Opsi khusus ekstensi tidak disertakan dalam MTP. Setiap aplikasi pengujian yang ditargetkan harus mendaftarkan ekstensi yang menyediakan opsi. Tambahkan paket NuGet ekstensi secara langsung, atau gunakan konfigurasi atau profil SDK pengujian yang menyertakan paket. Jika tidak, uji coba gagal dengan kode keluar 5 karena opsi tidak dikenali. Jalankan dotnet test --help untuk melihat opsi yang tersedia untuk aplikasi pengujian yang dipilih, dan lihat Opsi ekstensi berdasarkan skenario untuk menemukan paket untuk opsi.
Peringatan
Ketika MTP dipilih melalui global.json, dotnet test mengharapkan semua proyek pengujian untuk menggunakan MTP. Ini adalah kesalahan jika salah satu proyek pengujian menggunakan VSTest.
Persyaratan versi
Mode dotnet test MTP memerlukan .NET 10 SDK dan MTP 1.7 atau yang lebih baru. Opsi yang ditambahkan setelah .NET 10 memiliki persyaratan versi SDK individual di bagian berikut. Beberapa opsi juga memerlukan paket MTP yang lebih baru karena SDK mengoordinasikan eksekusi lengkap sementara setiap aplikasi pengujian menerapkan kemampuan yang sesuai.
Pemulihan implisit
Anda tidak harus menjalankan dotnet restore karena dijalankan secara implisit oleh semua perintah yang memerlukan terjadinya pemulihan, seperti dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish, dan dotnet pack. Untuk menonaktifkan pemulihan implisit, gunakan opsi --no-restore.
Perintah dotnet restore masih berguna dalam skenario tertentu di mana pemulihan secara eksplisit masuk akal, seperti build integrasi berkelanjutan di Azure DevOps Services atau dalam sistem build yang perlu dikontrol secara eksplisit ketika pemulihan terjadi.
Untuk informasi tentang cara mengelola umpan NuGet, lihat dotnet restore dokumentasi.
Important
Saat Anda menjalankan proyek atau solusi dengan --no-restore, simpan status proyek yang dihasilkan pemulihan di obj folder dan folder paket global yang cocok tersedia. Impor kerangka kerja pengujian dan paket platform mengatur properti MSBuild yang dotnet test menggunakan untuk mengidentifikasi aplikasi pengujian MTP. Opsi ini --no-build juga menyiratkan --no-restore. Jika lingkungan pengujian berisi aplikasi pengujian bawaan tetapi bukan status pemulihan proyek, gunakan --test-modules sebagai gantinya. Untuk informasi selengkapnya, lihat No test projects were found .
Opsi
Nota
Anda hanya dapat menggunakan salah satu opsi berikut pada satu waktu: --project, --solution, atau --test-modules. Opsi ini tidak dapat digabungkan.
Selain itu, saat Anda menggunakan --test-modules, Anda tidak dapat menentukan --arch, , --configuration, --device--framework, --list-devices, --os--runtime, , atau --use-current-runtime. Opsi ini memerlukan evaluasi proyek atau tidak relevan untuk modul yang sudah dibuat.
PROJECT_OR_TRAVERSAL_PATHMenentukan proyek atau proyek traversal yang akan dijalankan. Dimulai dengan .NET 11 Pratinjau 7,
dotnet testmendukungMicrosoft.Build.Traversalproyek, sepertidirs.proj, dan secara rekursif menjalankan proyek pengujian yang dirujuk.Dimulai dengan .NET 12 Pratinjau 1, argumen juga dapat mengidentifikasi aplikasi pengujian MTP berbasis file C#. Aplikasi pengujian berbasis file tidak mendukung
--device.--project <PROJECT_PATH>Menentukan jalur file project yang akan dijalankan (nama folder atau jalur lengkap). Jika tidak ditentukan, defaultnya ke direktori saat ini.
--solution <SOLUTION_PATH>Menentukan jalur file solusi yang akan dijalankan (nama folder atau jalur lengkap). Jika tidak ditentukan, defaultnya ke direktori saat ini.
--test-modules <EXPRESSION>Memfilter modul pengujian menggunakan globbing file. Hanya pengujian milik modul pengujian yang dijalankan. Karena opsi ini tidak mengevaluasi proyek, gunakan untuk menjalankan aplikasi pengujian yang sudah dibuat saat status pemulihan proyek tidak tersedia. Dimulai dengan .NET 11 Pratinjau 6, awali pola dengan
!untuk mengecualikan modul yang cocok. Pisahkan beberapa pola dengan titik koma; spasi kosong di sekitar setiap pola diabaikan.--root-directory <ROOT_PATH>Menentukan direktori akar opsi
--test-modules. Ini hanya dapat digunakan dengan opsi--test-modules.--max-parallel-test-modules <NUMBER>Menentukan jumlah maksimum modul pengujian yang dapat berjalan secara paralel. Defaultnya adalah Environment.ProcessorCount.
--config-file <CONFIG_FILE>Menentukan file konfigurasi yang akan digunakan untuk eksekusi pengujian. Jika jalur relatif disediakan, jalur tersebut dikonversi ke jalur absolut berdasarkan direktori saat ini. Untuk informasi selengkapnya tentang pengaturan file konfigurasi, lihat testconfig.json.
--results-directory <RESULTS_DIRECTORY>Menentukan direktori tempat hasil pengujian disimpan. Jika direktori tidak ada, direktori akan dibuat. Jika jalur relatif disediakan, jalur tersebut dikonversi ke jalur absolut berdasarkan direktori saat ini.
--results-directory-layout <flat|per-module>Menentukan bagaimana eksekusi multi-modul mengatur file di bawah direktori hasil. Defaultnya,
flat, menulis semua hasil ke direktori yang sama.per-modulemenulis hasil setiap modul ke<project>/<target-framework>_<runtime-or-architecture>, yang mencegah laporan dengan nama file yang sama menimpa satu sama lain.Tersedia mulai dengan .NET 11 RC 1.
--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>Menentukan direktori tempat output diagnostik disimpan. Jika direktori tidak ada, direktori akan dibuat. Jika jalur relatif disediakan, jalur tersebut dikonversi ke jalur absolut berdasarkan direktori saat ini.
--minimum-expected-tests <NUMBER>Menentukan jumlah tes minimum positif untuk seluruh eksekusi. Jika jumlah pengujian agregat kurang dari minimum yang ditentukan, uji coba gagal dengan kode keluar 9. Jumlah global mencakup pengujian yang dilewati. Untuk informasi selengkapnya tentang kode keluar, lihat Kode keluar MTP.
Karena opsi ini muncul sebelum
--, ini adalah opsi global (eksekusi keseluruhan). Untuk memerlukan minimal untuk setiap modul pengujian, teruskan opsi setelahnya--sehingga diteruskan ke setiap modul pengujian. Untuk informasi selengkapnya, lihat Minimum seluruh proses dan per modul.Nota
Minimum global memerlukan .NET 10 SDK (10.0.100) atau versi yang lebih baru.
--maximum-failed-tests <NUMBER>Menghentikan eksekusi lengkap setelah mencapai jumlah pengujian yang gagal, salah, kehabisan waktu, atau dibatalkan yang ditentukan. Eksekusi keluar dengan kode 13.
Tersedia mulai dengan .NET 11 Pratinjau 7 dan memerlukan MTP 2.4 atau yang lebih baru.
--timeout <DURATION>Menghentikan eksekusi lengkap setelah durasi yang ditentukan saat setidaknya satu aplikasi pengujian berjalan. Tentukan angka positif diikuti oleh unit, seperti
500ms, ,90s10m,2h, atau1d. Eksekusi kehabisan waktu keluar dengan kode 3.Tersedia mulai dengan .NET 11 Pratinjau 7 dan memerlukan MTP 2.4 atau yang lebih baru.
-e|--environment <NAME="VALUE">Mengatur variabel lingkungan untuk proses pengujian. Tentukan opsi beberapa kali untuk mengatur beberapa variabel. Nilai baris perintah mengambil alih nilai dari profil peluncuran.
Gunakan .NET SDK 10.0.110 atau yang lebih baru ketika tidak ada profil peluncuran atau ketika Anda menentukan
--no-launch-profile; versi SDK .NET 10 yang lebih lama dapat mengabaikan variabel dalam kasus tersebut. Dimulai dengan .NET 11 Pratinjau 7, variabel juga mengalir ke build yang sadar kemampuan, pemilihan perangkat, penyebaran, dan target run-argument.-
-a|--arch <ARCHITECTURE>Menentukan arsitektur target. Hal ini adalah sintaks singkat untuk mengatur Pengidentifikasi Runtime (RID), di mana nilai yang disediakan digabung dengan RID default. Misalnya, pada komputer
win-x64, menentukan--arch x86akan mengatur RID kewin-x86. Jika Anda menggunakan opsi ini, jangan gunakan opsi-r|--runtime. Tersedia sejak .NET 6 Pratinjau 7. -
--artifacts-path <ARTIFACTS_DIR>Semua file output build dari perintah yang dijalankan akan masuk ke subfolder di bawah jalur yang ditentukan, dipisahkan oleh proyek. Untuk informasi selengkapnya, lihat Tata Letak Output Artefak . Opsi ini dan nilai yang disediakan harus secara eksplisit dikaitkan dalam perintah apa pun
dotnetyang bergantung pada output perintah laindotnet, misalnya, saat menggunakandotnet build --no-restoredandotnet publish --no-build. Tersedia sejak .NET 8 SDK.Tersedia untuk mode MTP yang dimulai dengan .NET 11.
-
-c|--configuration <CONFIGURATION>Menentukan konfigurasi build. Default untuk sebagian besar proyek adalah
Debug, tetapi Anda dapat mengambil alih pengaturan konfigurasi build di project Anda. -f|--framework <FRAMEWORK>Moniker kerangka kerja target (TFM) dari kerangka kerja target untuk menjalankan pengujian. Kerangka kerja target juga harus ditentukan dalam file project.
-
--os <OS>Menentukan sistem operasi (OS) target. Hal ini adalah sintaks singkat untuk mengatur Pengidentifikasi Runtime (RID), di mana nilai yang disediakan digabung dengan RID default. Misalnya, pada komputer
win-x64, menentukan--os linuxakan mengatur RID kelinux-x64. Jika Anda menggunakan opsi ini, jangan gunakan opsi-r|--runtime. Tersedia sejak .NET 6. -r|--runtime <RUNTIME_IDENTIFIER>Runtime bahasa umum target yang akan diuji.
Formulir pendek
-rtersedia mulai .NET SDK 7.Nota
Menjalankan pengujian untuk solusi dengan properti global
RuntimeIdentifier(secara eksplisit atau melalui--arch, ,--runtimeatau--os) tidak didukung. AturRuntimeIdentifierpada tingkat project individual sebagai gantinya.--use-current-runtime|--ucrMenggunakan runtime saat ini sebagai runtime target selama pemulihan dan build.
Tersedia dimulai dengan .NET 11 Pratinjau 6. Anda tidak dapat menggabungkan opsi ini dengan
--test-modules.-
-v|--verbosity <LEVEL>Mengatur tingkat verbositas perintah. Nilai yang diizinkan adalah
q[uiet],m[inimal],n[ormal],d[etailed], dandiag[nostic]. Untuk informasi selengkapnya, lihat LoggerVerbosity . --no-buildMenentukan bahwa project pengujian tidak dibuat sebelum dijalankan. Ini juga secara implisit mengatur bendera
--no-restore.--no-dependenciesMelompati referensi proyek-ke-proyek bangunan.
Tersedia dimulai dengan .NET 11 Pratinjau 6.
--no-restoreMenentukan bahwa pemulihan implisit tidak dijalankan saat menjalankan perintah.
--nologo|--no-logo|--no-bannerMenekan banner startup .NET dan MTP. Formulir
-nologodan/nologodanDOTNET_NOLOGOvariabel lingkungan juga didukung.Tersedia dalam mode MTP dimulai dengan .NET 11 Pratinjau 7.
--no-ansiMenonaktifkan output karakter escape ANSI ke layar.
--no-progressMenonaktifkan kemajuan pelaporan ke layar.
--no-artifact-post-processingMenonaktifkan pasca-pemrosesan artefak yang kompatibel setelah eksekusi multi-modul. Dimulai dengan .NET 11 RC 1 dan MTP 2.4, artefak terdaftar pasca-prosesor dapat menggabungkan laporan yang kompatibel, seperti hasil TRX. Jika pasca-pemrosesan gagal, SDK mempertahankan artefak asli dan kode keluar pengujian.
--output <VERBOSITY_LEVEL>Menentukan verbositas output untuk hasil pengujian. Nilai yang valid adalah
Minimal,Normal, danDetailed. Defaultnya adalahNormal.Minimalmemerlukan pratinjau MTP 2.4.--show-test-results <OUTCOME>Memilih blok hasil berdasarkan hasil. Dalam pratinjau MTP 2.4, gunakan
passed, ,failedskipped,all, ataunone. Nilai inifailedjuga mencakup kesalahan, waktu habis, dan pembatalan.Gabungkan
passed,failed, danskippeddengan koma, spasi, atau opsi berulang--show-test-results. Jangan gabungkanallataunonedengan nilai lain. Opsi eksplisit ini mengambil alih--outputpreset terlepas dari urutan opsi.--list-tests [text|json]Mencantumkan pengujian yang ditemukan tanpa mengeksekusinya. Hilangkan nilai atau tentukan
textuntuk output yang dapat dibaca manusia. Dimulai dengan .NET 11 Pratinjau 7, tentukanjsonuntuk dokumen JSON versi yang mengelompokkan pengujian menurut assembly, kerangka kerja target, dan arsitektur dan mencakup pengidentifikasi, lokasi sumber, metode, parameter, dan sifat yang tersedia.--no-launch-profileJangan mencoba menggunakan launchSettings.json untuk mengonfigurasi aplikasi. Secara default,
launchSettings.jsondigunakan, yang dapat menerapkan variabel lingkungan dan argumen baris perintah ke pengujian yang dapat dieksekusi.--no-launch-profile-argumentsJangan gunakan argumen yang ditentukan oleh
commandLineArgsdalam profil peluncuran untuk menjalankan aplikasi.--device <DEVICE_ID>Memilih perangkat, emulator, atau simulator untuk setiap kerangka kerja target dalam proyek pengujian Android atau iOS. Jalur MTP juga mendukung proyek pengujian macOS dan Mac Catalyst. Jika input interaktif dan lebih dari satu perangkat tersedia,
dotnet testdapat meminta Anda untuk memilihnya.Tersedia dimulai dengan .NET 11 Pratinjau 6. Untuk proyek multi-target, gunakan .NET 11 RC 2 atau yang lebih baru sehingga penemuan perangkat mengevaluasi setiap kerangka kerja target dengan benar. Proyek pengujian Browser WebAssembly tidak didukung oleh opsi ini.
--list-devicesMencantumkan perangkat yang tersedia untuk proyek tanpa menjalankan pengujian. Tentukan proyek daripada solusi.
Tersedia dimulai dengan .NET 11 Pratinjau 7.
--collect-test-mapdan--affected-testsKumpulkan peta pengujian repositori atau jalankan pengujian yang terpengaruh oleh perubahan. Opsi eksperimental ini memerlukan ekstensi yang didistribusikan secara terpisah dan
DOTNET_CLI_ENABLE_AFFECTED_TESTS=1variabel lingkungan. Anda tidak dapat menggabungkan dua opsi. Alur kerja uji yang terpengaruh juga tidak mendukung pengujian perangkat, modul pengujian paralel, atau kebijakan pengujian minimum.Tersedia mulai dengan .NET 11 RC 1.
--property:<NAME>=<VALUE>Mengatur satu atau beberapa properti MSBuild. Tentukan beberapa properti dengan mengulangi opsi:
--property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>Formulir
-ppendek dapat digunakan untuk--property. Hal yang sama berlaku untuk/property:property=valuedan bentuk pendeknya/p. Informasi selengkapnya tentang argumen yang tersedia dapat ditemukan dalam dokumentasi dotnet msbuild.-
-?|-h|--helpMencetak deskripsi cara menggunakan perintah.
argsMenentukan argumen tambahan untuk diteruskan ke aplikasi pengujian. Gunakan spasi untuk memisahkan beberapa argumen. Untuk informasi dan contoh selengkapnya tentang apa yang harus diteruskan, lihat gambaran umum MTP dan fitur MTP.
Petunjuk / Saran
Untuk menentukan argumen tambahan untuk proyek tertentu, gunakan properti MSBuild
TestingPlatformCommandLineArguments. Properti ini sangat berguna ketika solusi Anda mencampur kerangka kerja pengujian (misalnya, MSTest dan xUnit.net) atau ketika hanya beberapa proyek yang mereferensikan ekstensi tertentu. Untuk informasi selengkapnya, lihat Solusi dengan kerangka kerja atau ekstensi pengujian campuran.
Nota
Untuk mengaktifkan pengelogan jejak ke file, gunakan variabel lingkungan DOTNET_CLI_TEST_TRACEFILE untuk menyediakan jalur ke file pelacakan.
Dimulai dengan .NET 11 RC 1, dotnet test -bl menggunakan satu sesi MSBuild untuk multi-proyek, multi-target, dan perangkat berjalan sehingga log biner berisi build lengkap.
Perilaku output dan pembatalan
Dimulai dengan .NET 11 Pratinjau 6, output ANSI interaktif menunjukkan pengujian yang saat ini berjalan dan melaporkan jumlah pengujian per rakitan. Tampilan kemajuan tetap dinonaktifkan saat output dialihkan, ANSI atau output kemajuan dinonaktifkan, atau lingkungan tidak interaktif.
Dimulai dengan .NET 11 Pratinjau 6, Ctrl+C pertama berhenti menjadwalkan aplikasi pengujian baru dan meminta pembatalan kooperatif. Tekan Ctrl+C lagi untuk segera mengakhiri proses anak. Eksekusi yang dibatalkan keluar dengan kode 3.
Output host pengujian langsung memerlukan host MTP yang mendukung protokol 1.1 atau yang lebih baru. Host yang lebih lama menyimpan output yang diambil dan memutarnya kembali untuk modul yang gagal. Dimulai dengan .NET 11 Pratinjau 7, ringkasan kegagalan memotong output standar yang diambil lebih dari 40 baris ke 30 pertama dan 10 baris terakhir; log diagnostik mempertahankan output lengkap.
Untuk eksekusi multi-modul, dotnet test evaluasi hasil zero-test di seluruh eksekusi lengkap yang dimulai dengan .NET 11 Pratinjau 7. Modul tanpa pengujian tidak gagal dijalankan jika modul lain berhasil menjalankan pengujian, kecuali kebijakan pengujian minimum eksplisit memerlukan lebih banyak pengujian.
Hasil dan artefak
Ketika tata letak output artefak SDK diaktifkan, .NET 11 RC 1 dan versi yang lebih baru menempatkan laporan MTP, file cakupan, dan diagnostik di bawah <ArtifactsPath>/test/<project>/<pivot> secara default. Eksplisit --results-directory atau --results-directory-layout diutamakan.
Dimulai dengan .NET 11 RC 1 dan MTP 2.4, ekstensi yang kompatibel dapat memproses artefak pasca-proses dari eksekusi multi-modul. Misalnya, ekstensi TRX dapat membuat laporan gabungan sambil mempertahankan laporan per modul. Untuk persyaratan ekstensi dan laporan, lihat laporan pengujian MTP.
Meneruskan argumen ke aplikasi pengujian
dotnet test meneruskan token apa pun yang tidak dikenali oleh aplikasi pengujian. Ketika opsi yang dikenali muncul antara nama opsi yang tidak dikenali dan nilainya, menghapus opsi yang dikenali dapat mengubah bagaimana token sisa mengikat opsi dalam aplikasi pengujian. Untuk menghindari ambiguitas ini, tempatkan argumen aplikasi pengujian setelah literal --:
dotnet test --results-directory TestResults -- --report-trx --report-trx-filename A.trx
Contoh sebelumnya memerlukan Microsoft.Testing.Extensions.TrxReport paket, baik sebagai referensi paket langsung atau melalui konfigurasi SDK pengujian yang menyertakannya.
Perilaku pengurai yang sama berlaku untuk dotnet run dan dotnet build. Untuk contoh terperinci, lihat Meneruskan argumen ke aplikasi dalam dotnet run referensi.
Minimum eksekusi keseluruhan dan per modul
Untuk --minimum-expected-tests, pemisah -- menentukan cakupan opsi:
- Argumen sebelumnya
--bersifat global. Orkestratordotnet testmenafsirkannya untuk seluruh proses. - Argumen setelah
--bersifat lokal.dotnet testmeneruskannya ke setiap modul pengujian, sehingga setiap modul menerapkannya secara independen.
Karena --minimum-expected-tests tersedia di kedua cakupan, Anda dapat memerlukan minimal untuk seluruh eksekusi, untuk setiap modul, atau keduanya:
dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2
Perintah sebelumnya memerlukan setidaknya 5 pengujian di seluruh eksekusi dan setidaknya 2 pengujian di setiap modul pengujian.
Dua cakupan menghitung pengujian yang dilewati secara berbeda:
| Ruang lingkup | Apakah pengujian yang dilewati dihitung ke minimum? |
|---|---|
| Global | Yes. Total dotnet test agregat mencakup pengujian yang dilewati. |
| Per modul | No. MTP mengecualikan pengujian yang dilewati dari jumlah pengujian yang berjalan. |
Dimulai dengan .NET 11 SDK, putusan zero-tests untuk seluruh eksekusi diputuskan sekali dari hasil agregat. Modul yang tidak cocok dengan pengujian, misalnya karena --test-modules atau global --filter, keluar dengan kode 8 (ZeroTests), tetapi kode tersebut dinormalisasi agar berhasil sebelum hasilnya dikumpulkan. Akibatnya, satu modul kosong tidak gagal seluruh eksekusi, meskipun modul menyimpan diagnostiknya Exit code: 8 dalam output untuk visibilitas.
MTP 4.3.0 dan versi yang lebih baru menyediakan --zero-tests-policy <allow-skipped|strict>. Nilai default, allow-skipped, memungkinkan modul yang dilewati berhasil. Nilai memperlakukan strict pengujian yang dilewati sebagai tidak berjalan, sehingga modul yang dilewati keluar dengan kode 8. Teruskan opsi setelah -- untuk meneruskannya ke setiap modul pengujian:
dotnet test -- --zero-tests-policy strict
Ketika Anda tidak menetapkan minimum global, .NET 11 SDK menentukan putusan zero-test yang dijalankan secara terpisah. Seluruh eksekusi yang dilewati keluar dengan kode 8 terlepas dari nilai per modul --zero-tests-policy .
Saat Anda menentukan --minimum-expected-tests dan minimum tidak terpenuhi, eksekusi gagal dengan kode keluar 9 (MinimumExpectedTestsPolicyViolation). Kode ini berbeda dari 8 sehingga minimum global atau per modul yang lebih ketat tidak dikacaukan dengan modul kosong. Agar minimum per modul mengembalikan kode 9 saat modul menjalankan nol pengujian, modul pengujian harus menggunakan MTP 4.4.0 atau versi yang lebih baru.
Nota
--minimum-expected-tests 0 tidak valid. Untuk menekan kode keluar zero-tests, gunakan --ignore-exit-code 8.
Dimulai dengan .NET 11 Pratinjau 6, --tl, --terminallogger, dan --tlp diteruskan ke MSBuild alih-alih aplikasi pengujian. Dimulai dengan .NET 12 Pratinjau 1, formulir dan -multiThreaded yang dikenali -mt juga diteruskan ke MSBuild. Untuk meneruskan opsi aplikasi dengan salah satu nama ini, letakkan setelah --.
Teruskan opsi mode eksekusi seperti --help dan --list-tests langsung ke dotnet test. Dimulai dengan .NET 11 Pratinjau 6, SDK memvalidasi mode eksekusi yang dinegosiasikan dengan aplikasi pengujian. Jika profil peluncuran atau TestingPlatformCommandLineArguments menyuntikkan salah satu opsi ini, operasi SDK yang diminta dan operasi aplikasi tidak cocok, dan eksekusi gagal dengan diagnostik.
Examples
Jalankan pengujian di project atau solusi di direktori saat ini:
dotnet testJalankan pengujian di
TestProjectproject:dotnet test --project ./TestProject/TestProject.csprojJalankan pengujian dalam solusi
TestProjects:dotnet test --solution ./TestProjects/TestProjects.slnJalankan pengujian menggunakan assembly
TestProject.dll:dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"Jalankan pengujian menggunakan rakitan
TestProject.dlldengan direktori akar:dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"Jalankan semua proyek pengujian yang dirujuk oleh proyek traversal dengan .NET 11 Pratinjau 7 atau yang lebih baru:
dotnet test dirs.projMencantumkan pengujian sebagai JSON dengan .NET 11 Pratinjau 7 atau yang lebih baru:
dotnet test --list-tests jsonJalankan aplikasi uji MTP berbasis file C# dengan .NET 12 Pratinjau 1 atau yang lebih baru:
dotnet test App.Tests.csJalankan pengujian di direktori saat ini dengan ekstensi Cakupan Kode Microsoft. Aplikasi pengujian harus mereferensikan
Microsoft.Testing.Extensions.CodeCoverage, baik secara langsung atau melalui konfigurasi SDK pengujian yang menyertakannya:dotnet test --coverageJalankan pengujian dan simpan hasil dalam direktori tertentu:
dotnet test --results-directory ./TestResultsJalankan pengujian dengan output diagnostik di direktori tertentu:
dotnet test --diagnostic-output-directory ./DiagnosticsJalankan pengujian yang memastikan setidaknya 10 pengujian dijalankan:
dotnet test --minimum-expected-tests 10Memerlukan setidaknya 5 pengujian di seluruh eksekusi dan setidaknya 2 pengujian di setiap modul pengujian:
dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2Jalankan pengujian di
TestProjectproject, menyediakan argumen-bl(log biner) kemsbuild:dotnet test --project ./TestProject/TestProject.csproj -blJalankan pengujian di
TestProjectproject, atur properti MSBuildDefineConstantskeDEV:dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"