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.
Dalam .NET, kerangka kerja pengujian dan platform pengujian adalah komponen berbeda yang bekerja sama untuk menemukan dan menjalankan pengujian.
- Kerangka kerja pengujian mendefinisikan model pengujian yang Anda tulis, seperti MSTest, NUnit, xUnit.net, atau TUnit.
- Platform pengujian menjalankan pengujian, mengintegrasikan dengan IDEs dan CLI, dan menyediakan titik-titik ekstensi yang dapat dibagikan.
Anda dapat memilih antara dua platform pengujian:
- VSTest
- Microsoft.Testing.Platform (MTP)
Tip
Untuk penyiapan paling sederhana, pilih satu platform untuk repositori Anda, dan konfigurasikan proyek pengujian, CI, dan alat secara konsisten untuk platform tersebut. Jangan mencampur proyek pengujian .NET berbasis VSTest dan berbasis Microsoft.Testing.Platform dalam solusi yang sama atau menjalankan konfigurasi karena skenario tersebut tidak didukung. Jika Anda juga menjalankan pengujian non-.NET yang bergantung pada VSTest (misalnya, pengujian C++ atau JavaScript), jalankan pengujian tersebut dalam konfigurasi terpisah dari pengujian .NET berbasis MTP Anda.
Cara memilih platform Anda
Gunakan skenario berikut untuk memilih dengan cepat.
| Skenario penggunaan | Pilih | Mengapa |
|---|---|---|
| Anda memerlukan AOT Native atau skenario pengujian trimming. | Microsoft.Testing.Platform | MTP mendukung skenario penyebaran modern ini, sementara VSTest tidak. |
| Anda sedang membangun proyek pengujian WinUI atau UWP paket. | VSTest | Jenis proyek ini saat ini tidak didukung oleh MTP. |
| Anda perlu mencampur pengujian .NET dan adaptor pengujian non-.NET (misalnya adaptor JavaScript atau C++). | VSTest | VSTest mendukung skenario adaptor bahasa campuran, sementara MTP bersifat khusus .NET. |
Anda ingin proyek pengujian berperilaku seperti executable biasa (dotnet run, dijalankan langsung, dotnet watch, dan alur F5 proyek startup). |
Microsoft.Testing.Platform | MTP adalah executable-first, sehingga aplikasi pengujian berjalan seperti aplikasi .NET standar di alur kerja lokal dan CI. |
| Anda mengandalkan integrasi yang telah lama ada di berbagai alat yang sudah ada. | VSTest | VSTest memiliki rekam jejak kompatibilitas terpanjang di seluruh produk, tugas, dan alur yang ada. Dukungan MTP berkembang dalam ekosistem, tetapi beberapa integrasi mungkin tertinggal dari VSTest. |
| Anda lebih suka default yang ketat dan perilaku eksplisit. | Microsoft.Testing.Platform | MTP mendukung eksekusi deterministik dengan model ekstensi dengan pilihan keikutsertaan yang ringan dan pendaftaran saat build. Misalnya, ini dapat gagal ketika tidak ada pengujian yang berjalan, mengurangi varianbilitas yang bergantung pada lingkungan, dan memungkinkan Anda menonaktifkan ekstensi individual per lingkungan. |
| Anda lebih suka pengaturan awal yang lebih lembut dan kompatibel dengan versi lama secara menyeluruh. | VSTest | Kedua platform peduli tentang kompatibilitas mundur. VSTest memprioritaskan default berorientasi kompatibilitas untuk berbagai toolchain yang ada, sementara MTP menyediakan kompatibilitas mundur dalam model ekstensinya sendiri. |
| Anda diblokir oleh masalah atau perilaku khusus VSTest dalam alur kerja Anda saat ini. | Microsoft.Testing.Platform | Dalam banyak skenario, alur kerja yang sama tidak terpengaruh saat dipindahkan ke MTP karena perbedaan model runtime dan arsitektur ekstensi. |
Jika kasus penggunaan spesifik Anda tidak tercantum, kedua platform adalah pilihan yang valid.
Dukungan untuk pengintegrasian dan alat-alat
| Area integrasi | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Integrasi IDE | Integrasi matang di seluruh Visual Studio dan alat lain yang bergantung pada protokol dan adaptor VSTest. | Didukung dalam skenario Visual Studio dan Visual Studio Code, dengan pekerjaan integrasi yang sedang berlangsung di bagian ekosistem. |
| CI dan alat eksternal | Dukungan luas di seluruh alat dan tugas Microsoft dan non-Microsoft yang telah lama ada. Di Azure DevOps, Anda dapat menggunakan tugas VSTest (VSTest@3, vstest.console) atau tugas .NET (DotNetCoreCLI@2, dotnet test). |
Berfungsi di alur kerja CI dan .NET modern, tetapi beberapa integrasi pihak ketiga mungkin masih tertinggal dari VSTest. Di Azure DevOps, gunakan tugas .NET (DotNetCoreCLI@2, dotnet test). |
dotnet test Perilaku |
Mode VSTest default. Argumen dan perilaku VSTest berlaku. | Mode MTP asli tersedia di .NET 10 SDK dan yang lebih baru. |
Untuk detail lengkap tentang dotnet test mode dan argumen, lihat Pengujian dengan dotnet test.
Mulai dari kerangka kerja pengujian Anda
Jika Anda memilih VSTest
- MSTest: Menjalankan pengujian dengan MSTest
- NUnit: NUnit dan Microsoft.Testing.Platform
- xUnit.net: Mulai menggunakan xUnit.net
- TUnit: Tidak didukung di VSTest. Gunakan Microsoft.Testing.Platform.
Jika Anda memilih Microsoft.Testing.Platform
- MSTest: Menjalankan pengujian dengan MSTest
- NUnit: Dukungan Microsoft.Testing.Platform di NUnit (eksekutor NUnit)
- xUnit.net: Platform Pengujian Microsoft (xUnit.net v3)
- TUnit: Dokumentasi TUnit
Langkah selanjutnya
- Pelajari konsep MTP: Gambaran umum Microsoft.Testing.Platform
- Memahami opsi VSTest: Opsi VSTest
- Migrasi dari VSTest: Migrasi dari VSTest ke Microsoft.Testing.Platform
- Menambahkan kemampuan: Fitur Microsoft.Testing.Platform