uji dotnet dengan Microsoft.Testing.Platform (MTP)

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>]
    [--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.

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 x86 akan mengatur RID ke win-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 linux akan mengatur RID ke linux-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 -r tersedia mulai .NET SDK 7.

    Nota

    Menjalankan pengujian untuk solusi dengan properti global RuntimeIdentifier (secara eksplisit atau melalui --arch, , --runtimeatau --os) tidak didukung. Atur RuntimeIdentifier pada tingkat project individual sebagai gantinya.

  • -v|--verbosity <LEVEL>

    Mengatur tingkat verbositas perintah. Nilai yang diizinkan adalah q[uiet], m[inimal], n[ormal], d[etailed], dan diag[nostic]. Untuk informasi selengkapnya, lihat LoggerVerbosity .

  • --no-build

    Menentukan bahwa project pengujian tidak dibuat sebelum dijalankan. Ini juga secara implisit mengatur bendera --no-restore.

  • --no-restore

    Menentukan bahwa pemulihan implisit tidak dijalankan saat menjalankan perintah.

  • --no-ansi

    Menonaktifkan output karakter escape ANSI ke layar.

  • --no-progress

    Menonaktifkan kemajuan pelaporan ke layar.

  • --output <VERBOSITY_LEVEL>

    Menentukan verbositas output saat melaporkan pengujian. Nilai yang berlaku adalah Normal atau Detailed. Defaultnya adalah Normal.

  • --no-launch-profile

    Jangan mencoba menggunakan launchSettings.json untuk mengonfigurasi aplikasi. Secara default, launchSettings.json digunakan, yang dapat menerapkan variabel lingkungan dan argumen baris perintah ke pengujian yang dapat dieksekusi.

  • --no-launch-profile-arguments

    Jangan gunakan argumen yang ditentukan oleh commandLineArgs dalam 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 -p pendek dapat digunakan untuk --property. Hal yang sama berlaku untuk /property:property=value dan bentuk pendeknya /p. Informasi selengkapnya tentang argumen yang tersedia dapat ditemukan dalam dokumentasi dotnet msbuild.

  • -?|-h|--help

    Mencetak deskripsi cara menggunakan perintah.

  • args

    Menentukan 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

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 test
    
  • Jalankan pengujian di TestProject project:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Jalankan pengujian dalam solusi TestProjects:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Jalankan pengujian menggunakan assembly TestProject.dll:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Jalankan pengujian menggunakan rakitan TestProject.dll dengan direktori akar:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Jalankan pengujian di direktori saat ini dengan cakupan kode:

    dotnet test --coverage
    
  • Jalankan pengujian dan simpan hasil dalam direktori tertentu:

    dotnet test --results-directory ./TestResults
    
  • Jalankan pengujian dengan output diagnostik di direktori tertentu:

    dotnet test --diagnostic-output-directory ./Diagnostics
    
  • Jalankan pengujian yang memastikan setidaknya 10 pengujian dijalankan:

    dotnet test --minimum-expected-tests 10
    
  • Jalankan pengujian di TestProject project, menyediakan argumen -bl (log biner) ke msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Jalankan pengujian di TestProject project, atur properti MSBuild DefineConstants ke DEV:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

Lihat juga