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 <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>]
[--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
[--minimum-expected-tests <NUMBER>]
[-a|--arch <ARCHITECTURE>]
[-c|--configuration <CONFIGURATION>]
[-f|--framework <FRAMEWORK>]
[--os <OS>]
[-r|--runtime <RUNTIME_IDENTIFIER>]
[-v|--verbosity <LEVEL>]
[--no-build]
[--no-restore]
[--no-ansi]
[--no-progress]
[--output <VERBOSITY_LEVEL>]
[--show-test-results <OUTCOME>]
[--no-launch-profile]
[--no-launch-profile-arguments]
[<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.
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.
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 menggunakan --test-modules, Anda tidak dapat menentukan --arch, --configuration, --framework, --os, atau --runtime. Opsi ini tidak relevan untuk modul yang sudah dibuat.
--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.
--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.
--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 minimum pengujian yang harus dijalankan. Jika jumlah pengujian aktual kurang dari minimum yang ditentukan, uji coba gagal dengan kode keluar 9. Untuk informasi selengkapnya tentang kode keluar, lihat Kode keluar MTP.
-
-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. -
-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.-
-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-restoreMenentukan bahwa pemulihan implisit tidak dijalankan saat menjalankan perintah.
--no-ansiMenonaktifkan output karakter escape ANSI ke layar.
--no-progressMenonaktifkan kemajuan pelaporan ke layar.
--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.--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.--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.
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.
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 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 10Jalankan 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"