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.
Microsoft.Testing.Platform adalah alternatif ringan dan portabel untuk VSTest untuk menjalankan pengujian di semua konteks, termasuk integrasi berkelanjutan (CI) pipelines, CLI, Visual Studio Test Explorer, dan VS Code Test Explorer. Microsoft.Testing.Platform disematkan langsung dalam proyek pengujian Anda, dan tidak ada dependensi aplikasi lain, seperti vstest.console atau dotnet test yang diperlukan untuk menjalankan pengujian Anda.
Saran
Jika Anda memerlukan bantuan untuk memilih antara VSTest dan Microsoft.Testing.Platform, mulailah dengan gambaran umum platform Pengujian.
Gunakan artikel ini ketika Anda sudah memutuskan untuk menggunakan Microsoft.Testing.Platform dan Anda ingin memahami model, kemampuan, dan perilaku operasionalnya.
Microsoft.Testing.Platform adalah open source. Anda dapat menemukan kode Microsoft.Testing.Platform di repositori microsoft/testfx GitHub.
Mulai di sini
Gunakan jalur berikut, berdasarkan apa yang Anda butuhkan selanjutnya:
- Menjalankan dan mendebug pengujian dari CLI, IDE, atau CI: Jalankan dan debug pengujian
- Memahami perilaku platform di CLI: Pengujian dengan
dotnet test - Temukan opsi CLI platform dan ekstensi di satu sumber: Referensi opsi CLI Microsoft.Testing.Platform
- Mengonfigurasi runner kerangka kerja: Jalankan pengujian dengan MSTest atau Microsoft.Testing.Platform support di NUnit (runner NUnit)
- Memigrasikan penyiapan VSTest yang ada: Migrasi dari VSTest ke Microsoft.Testing.Platform
- Menambahkan diagnostik, cakupan, dan pelaporan: Fitur Microsoft.Testing.Platform
- Bangun ekstensi Anda sendiri: Arsitektur Microsoft.Testing.Platform, Titik ekstensi, dan Layanan
Prinsip Microsoft.Testing.Platform
Platform pengujian baru ini dibangun berdasarkan pengalaman tim .NET Developer Experience Testing dan bertujuan untuk mengatasi tantangan yang dihadapi sejak rilis .NET Core pada tahun 2016. Meskipun ada tingkat kompatibilitas yang tinggi antara .NET Framework dan .NET Core/.NET, beberapa fitur utama seperti sistem plugin dan berbagai bentuk baru yang mungkin dalam kompilasi .NET telah membuatnya menjadi kompleks untuk dikembangkan atau sepenuhnya mendukung fitur runtime baru dengan arsitektur platform VSTest saat ini.
Faktor pendorong utama untuk evolusi platform pengujian baru dirinci dalam hal berikut:
Determinisme: Memastikan bahwa menjalankan pengujian yang sama dalam konteks yang berbeda (lokal, CI) akan menghasilkan hasil yang sama. Runtime baru tidak bergantung pada refleksi atau fitur runtime .NET dinamis lainnya untuk mengoordinasikan eksekusi pengujian.
Transparansi Runtime: Runtime pengujian tidak mengganggu kode kerangka kerja pengujian, tidak membuat konteks terisolasi seperti
AppDomainatauAssemblyLoadContext, dan tidak menggunakan refleksi atau pemecah perakitan kustom.Registrasi ekstensi pada waktu kompilasi: Ekstensi, seperti kerangka kerja pengujian dan ekstensi di/dari proses, didaftarkan selama waktu kompilasi untuk menjamin determinisme dan memfasilitasi deteksi inkonsistensi.
DependensiZero: Inti platform adalah rakitan .NET tunggal,
Microsoft.Testing.Platform.dll, yang tidak memiliki dependensi selain runtime yang didukung.Hostable: Runtime pengujian dapat dihosting di aplikasi .NET apa pun. Meskipun aplikasi konsol umumnya digunakan untuk menjalankan pengujian, Anda dapat membuat aplikasi pengujian dalam semua jenis aplikasi .NET. Ini memungkinkan Anda menjalankan pengujian dalam konteks khusus, seperti perangkat atau browser, di mana mungkin ada batasan.
Dukung semua platform .NET: Mendukung platform .NET saat ini dan di masa mendatang, termasuk Native AOT.
Performant: Menemukan keseimbangan yang tepat antara fitur dan titik ekstensi untuk menghindari membebani runtime dengan kode non-fundamental. Platform pengujian baru dirancang untuk "mengorkestrasi" uji coba, daripada memberikan detail implementasi tentang bagaimana melakukannya.
Cukup fleksibel untuk diperluas: Platform baru dibangun di atas titik ekstensibilitas untuk memungkinkan kustomisasi maksimum dari eksekusi saat runtime. Ini memungkinkan Anda untuk mengonfigurasi host proses pengujian, mengamati proses pengujian, dan menggunakan informasi dari kerangka kerja pengujian dalam proses host pengujian.
Penyebaran modul tunggal: Fitur hostabilitas memungkinkan model penyebaran modul tunggal, di mana satu hasil kompilasi dapat digunakan untuk mendukung semua titik ekstensibilitas, baik di luar proses maupun dalam proses, tanpa perlu mengirim modul yang dapat dieksekusi yang berbeda.
Kerangka kerja pengujian yang didukung
- MSTest. Di MSTest, dukungan
Microsoft.Testing.Platformdilakukan melalui MSTest runner. - NUnit. Di NUnit,
Microsoft.Testing.Platformdidukung melalui NUnit runner . - xUnit.net. Untuk informasi selengkapnya, lihat Platform PengujianMicrosoft (xUnit.net v3) dan Platform PengujianMicrosoft (xUnit.net v2) dari dokumentasi xUnit.net.
- TUnit: sepenuhnya dibangun di atas
Microsoft.Testing.Platform, untuk informasi selengkapnya, lihat dokumentasi TUnit.
Kerangka target yang didukung
Microsoft.Testing.Platform mendukung .NET (.NET 8 dan yang lebih baru), .NET Framework (versi 4.6.2 dan yang lebih baru), dan menargetkan NETStandard 2.0 untuk kompatibilitas maksimum dengan runtime lainnya.
Menjalankan dan memperbaiki pengujian
Untuk panduan terperinci tentang menjalankan dan men-debug proyek pengujian MTP dari CLI, Visual Studio, Visual Studio Code, dan CI pipelines, lihat Jalankan dan debug tes.
Opsi
Untuk daftar lengkap opsi baris perintah platform dan ekstensi, lihat Referensi opsi CLI Microsoft.Testing.Platform.
Integrasi MSBuild
Paket NuGet Microsoft.Testing.Platform.MSBuild menyediakan berbagai integrasi untuk Microsoft.Testing.Platform dengan MSBuild:
- Dukungan untuk
dotnet test. Untuk informasi selengkapnya, lihat Pengujian dengan pengujian dotnet. - Dukungan untuk
ProjectCapabilitydiperlukan olehVisual StudiodanVisual Studio Codedalam Test Explorers. - Pembuatan otomatis titik masuk (metode
Main). - Pembuatan otomatis file konfigurasi.
- Deteksi otomatis dan pendaftaran paket ekstensi yang diinstal.
Ketika paket ini berjalan (default untuk runner MSTest, NUnit, dan xUnit), menginstal paket NuGet ekstensi sudah cukup — ekstensi akan terdaftar secara otomatis tanpa perubahan kode. Jika Anda menonaktifkan titik masuk yang dihasilkan secara otomatis dengan mengatur <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, Anda harus secara manual mendaftarkan ekstensi dalam metode Main Anda. Setiap halaman ekstensi mendokurasikan panggilan pendaftaran manualnya.
Nota
Integrasi ini bekerja dengan cara transitif (project yang mereferensikan project lain yang mereferensikan paket ini akan berperilaku seolah-olah mereferensikan paket) dan dapat dinonaktifkan melalui properti MSBuild IsTestingPlatformApplication.