Bagikan melalui


uji dotnet dengan Microsoft.Testing.Platform (MTP)

Artikel ini berlaku untuk: ✔️ .NET 10 SDK dan versi yang lebih baru

Nama

dotnet test - Driver uji .NET yang digunakan untuk menjalankan pengujian unit dengan Microsoft.Testing.Platform.

Sinopsis

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <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 Microsoft Testing Platform, dotnet test beroperasi lebih cepat daripada dengan VSTest. Argumen terkait pengujian tidak lagi diperbaiki, karena terkait dengan ekstensi terdaftar dalam proyek pengujian. Selain itu, MTP mendukung filter globbing saat menjalankan pengujian. Untuk informasi selengkapnya, lihat Microsoft.Testing.Platform.

Peringatan

Ketika Microsoft.Testing.Platform dipilih melalui global.json, dotnet test mengharapkan semua proyek pengujian menggunakan Microsoft.Testing.Platform. 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 pembangunan integrasi berkelanjutan di Azure DevOps Services atau dalam sistem pembangunan yang perlu secara eksplisit mengontrol saat 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, , --solutionatau --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 proyek 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 di .NET. Hanya pengujian milik modul pengujian tersebut yang akan berjalan. Untuk informasi dan contoh selengkapnya tentang cara menggunakan globbing file di .NET, lihat File globbing.

  • --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.

  • -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 Preview 7.

  • -c|--configuration <CONFIGURATION>

    Menentukan konfigurasi build. Default untuk sebagian besar proyek adalah Debug, tetapi Anda dapat mengambil alih pengaturan konfigurasi build di proyek Anda.

  • -f|--framework <FRAMEWORK>

    Moniker kerangka kerja target (TFM) dari kerangka kerja target untuk menjalankan pengujian. Kerangka kerja target juga harus ditentukan dalam file proyek.

  • --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 -r pendek tersedia mulai dari .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 proyek 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 proyek pengujian tidak dibangun 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 ringkasan Microsoft.Testing.Platform dan ekstensi Microsoft.Testing.Platform.

    Petunjuk / Saran

    Untuk menentukan argumen tambahan untuk proyek tertentu, gunakan properti MSBuild TestingPlatformCommandLineArguments.

Nota

Untuk mengaktifkan pengelogan jejak ke file, gunakan variabel lingkungan DOTNET_CLI_TEST_TRACEFILE untuk menyediakan jalur ke file pelacakan.

Examples

  • Jalankan pengujian dalam proyek atau solusi di direktori saat ini:

    dotnet test
    
  • Jalankan pengujian dalam proyek TestProject:

    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 dalam proyek TestProject, yang menyediakan argumen -bl (log biner) ke msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Jalankan pengujian dalam proyek TestProject, yang mengatur properti DefineConstants MSBuild ke DEV:

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

Lihat juga