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 memberikan wawasan tentang dotnet test
perintah CLI, termasuk kompatibilitas riwayatnya dengan VSTest dan Microsoft.Testing.Platform (MTP).
dotnet test
Perintah beroperasi dalam dua mode utama:
- Mode VSTest: Ini adalah mode default untuk
dotnet test
dan merupakan satu-satunya mode yang tersedia sebelum .NET 10 SDK. Ini terutama dirancang untuk VSTest tetapi juga dapat menjalankan pengujian Microsoft.Testing.Platform melalui paket NuGet Microsoft.Testing.Platform.MSBuild . - Mode Microsoft.Testing.Platform : Diperkenalkan dengan .NET 10 SDK, mode ini secara eksklusif mendukung aplikasi pengujian yang dibangun dengan Microsoft.Testing.Platform.
Petunjuk / Saran
Untuk referensi CLI, lihat dotnet test.
Mode VSTest dari dotnet test
Untuk waktu yang lama, VSTest adalah satu-satunya platform pengujian di .NET. Akibatnya, dotnet test
dirancang secara eksklusif untuk VSTest, dengan semua opsi baris perintah yang disesuaikan dengan VSTest.
Proses ini melibatkan pemanggilan VSTest
target MSBuild, yang memicu target internal lainnya untuk berjalan dan pada akhirnya berjalan vstest.console. Semua dotnet test
opsi baris perintah diterjemahkan ke yang setara di vstest.console.
Menjalankan proyek MTP dengan mode VSTest
dotnet test
dirancang untuk menjalankan proyek VSTest dalam mode VSTest. Namun, Anda dapat menjalankan proyek MTP dalam dotnet test
mode VSTest dengan menggunakan paket Microsoft.Testing.Platform.MSBuild . Dari perspektif pengguna, dukungan ini diaktifkan dengan mengatur TestingPlatformDotnetTestSupport
properti MSBuild ke true
( false
secara default karena alasan kompatibilitas mundur). Ketika properti ini diatur ke true
, Microsoft.Testing.Platform.MSBuild mengubah VSTest
perilaku target, mengalihkannya ke panggilan InvokeTestingPlatform
.
InvokeTestingPlatform
adalah target MSBuild yang disertakan dalam Microsoft.Testing.Platform.MSBuild yang bertanggung jawab untuk menjalankan aplikasi pengujian MTP dengan benar sebagai executable. Opsi baris perintah khusus VSTest, seperti --logger
, diabaikan secara diam-diam dalam mode ini. Untuk menyertakan argumen khusus MTP, seperti --report-trx
, Anda harus menambahkannya setelah tambahan --
. Contohnya, dotnet test -- --report-trx
.
Nota
MSTest dan NUnit menggunakan paket Microsoft.Testing.Extensions.VSTestBridge . Dengan mengatur EnableMSTestRunner
atau EnableNUnitRunner
(yang memungkinkan Microsoft.Testing.Platform), proyek pengujian Anda akan mendukung VSTest dan Microsoft.Testing.Platform.
Dalam skenario itu, jika Anda menggunakan mode dotnet test
VSTest dan tidak mengatur TestingPlatformDotnetTestSupport
ke true, Anda pada dasarnya menggunakan VSTest sepenuhnya, seakan-akan EnableMSTestRunner
dan EnableNUnitRunner
tidak diatur ke true.
Nota
Sangat disarankan untuk mengatur properti TestingPlatformDotnetTestSupport
di Directory.Build.props
. Ini memastikan bahwa Anda tidak perlu menambahkannya ke setiap file proyek pengujian satu per satu. Selain itu, ini mencegah risiko memperkenalkan proyek pengujian baru yang tidak mengatur properti ini, yang dapat mengakibatkan solusi di mana beberapa proyek menggunakan VSTest sementara yang lain menggunakan Microsoft.Testing.Platform. Konfigurasi campuran ini mungkin tidak berfungsi dengan benar dan merupakan skenario yang tidak didukung.
Daftar berikut menguraikan opsi dotnet test
baris perintah perintah dalam mode VSTest yang didukung oleh Microsoft.Testing.Platform. Opsi ini khusus untuk proses build dan tidak diteruskan ke VSTest, itulah sebabnya mereka bekerja dengan MTP.
-a|--arch <ARCHITECTURE>
--artifacts-path <ARTIFACTS_DIR>
-c|--configuration <CONFIGURATION>
-f|--framework <FRAMEWORK>
-e|--environment <NAME="VALUE">
--interactive
--no-build
--nologo
--no-restore
-o|--output <OUTPUT_DIRECTORY>
--os <OS>
-r|--runtime <RUNTIME_IDENTIFIER>
-v|--verbosity <LEVEL>
Petunjuk / Saran
Anda dapat menyesuaikan argumen baris perintah aplikasi pengujian Anda melalui TestingPlatformCommandLineArguments
properti MSBuild:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>
Untuk informasi lebih lanjut mengenai menjalankan proyek MTP secara khusus dalam mode VSTest, dotnet test
silakan lihat Gunakan Microsoft.Testing.Platform dengan mode VSTest dari dotnet test
.
Detail teknis tingkat lanjut
Dalam dotnet test
mode VSTest, --
digunakan untuk menunjukkan argumen RunSettings. Awalnya, dotnet test
dirancang untuk meneruskan argumen tersebut sebagai properti MSBuild yang disebut VSTestCLIRunSettings
. Oleh karena itu, saat menjalankan aplikasi pengujian MTP dalam mode VSTest, kami menggunakan kembali nilai VSTestCLIRunSettings
untuk mewakili "argumen aplikasi".
Mencampur VSTest dan Microsoft.Testing.Platform (MTP)
Saat menjalankan dotnet test
dalam mode VSTest, disarankan untuk menghindari menggabungkan VSTest dan Microsoft.Testing.Platform dalam solusi yang sama.
Skenario ini tidak didukung secara resmi, dan Anda harus mengetahui hal-hal berikut:
- Opsi baris perintah khusus VSTest hanya akan berlaku untuk proyek VSTest dan bukan untuk aplikasi pengujian MTP.
- Opsi baris perintah khusus MTP yang disediakan setelah
--
akan diperlakukan sebagai argumen RunSettings untuk proyek VSTest.
Intisari Utama
- Untuk menjalankan aplikasi pengujian MTP dalam
dotnet test
mode VSTest, Anda harus menggunakanMicrosoft.Testing.Platform.MSBuild
, lewati opsi baris perintah khusus MTP setelah tambahan--
, dan aturTestingPlatformDotnetTestSupport
ketrue
. - Opsi baris perintah berorientasi VSTest diabaikan secara diam-diam.
Karena masalah ini, .NET telah memperkenalkan mode baru dotnet test
yang dirancang khusus untuk MTP. Kami mendorong pengguna MTP untuk beralih dari mode VSTest dotnet test
ke mode baru dengan .NET 10 SDK.
Mode dari Microsoft.Testing.Platform (MTP) dotnet test
Untuk mengatasi masalah yang dihadapi saat berjalan dotnet test
dengan MTP dalam mode VSTest, .NET memperkenalkan mode baru di .NET 10 SDK yang dirancang khusus untuk MTP.
Untuk mengaktifkan mode ini, tambahkan dotnet.config
file ke akar repositori atau solusi.
[dotnet.test.runner]
name = "Microsoft.Testing.Platform"
Penting
Pengalaman dotnet test
untuk MTP hanya didukung di Microsoft.Testing.Platform
versi 1.7 dan yang lebih baru.
Karena mode ini dirancang khusus untuk Microsoft.Testing.Platform, baik TestingPlatformDotnetTestSupport
maupun tambahan --
tidak diperlukan.
Penting
Mode ini hanya kompatibel dengan Microsoft.Testing.Platform versi 1.7.0 dan yang lebih baru.
Penting
Jika proyek pengujian Anda mendukung VSTest tetapi tidak mendukung MTP, kesalahan akan dihasilkan.
Petunjuk / Saran
Anda dapat menyesuaikan argumen baris perintah aplikasi pengujian Anda melalui TestingPlatformCommandLineArguments
properti MSBuild:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>