Bagikan melalui


Gambaran umum platform pengujian untuk .NET

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

Jika Anda memilih Microsoft.Testing.Platform

Langkah selanjutnya