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 ditujukan untuk pengembang yang membangun kerangka kerja atau ekstensi pengujian kustom untuk Microsoft.Testing.Platform.
Nota
Untuk kode sampel lengkap, lihat TestingPlatformExamples di repositori Microsoft Test Framework.
Ringkasan titik ekstensi
| Poin ekstensi | Dalam/Di Luar Proses | Kegunaan |
|---|---|---|
| ITestFramework | Dalam proses | Ekstensi wajib yang satu-satunya. Menemukan dan menjalankan pengujian. |
| IDataConsumer | Dalam proses | Berlangganan dan memproses data pengujian dari bus pesan. |
| ITestSessionLifetimeHandler | Dalam proses | Menjalankan kode sebelum dan sesudah sesi pengujian. |
| ITestApplicationLifecycleCallbacks | Dalam proses | Menjalankan kode di awal dan sangat akhir dari host pengujian. |
| ICommandLineOptionsProvider | Both | Menambahkan opsi baris perintah kustom. |
| ITestHostEnvironmentVariableProvider | Di luar proses | Mengatur variabel lingkungan sebelum host pengujian dimulai. |
| ITestHostProcessLifetimeHandler | Di luar proses | Mengamati proses host pengujian secara eksternal. |
Ekstensi perangkat lunak dalam proses vs ekstensi perangkat lunak di luar proses
Ekstensi dikategorikan ke dalam dua jenis:
Ekstensi dalam-proses berjalan di dalam proses host pengujian, bersama dengan kerangka kerja pengujian. Daftarkan melalui
builder.TestHost:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHost.AddXXX(/* ... */);Ekstensi di luar proses berjalan dalam proses terpisah yang mengamati host pengujian. Daftarkan melalui
builder.TestHostControllers:var builder = await TestApplication.CreateBuilderAsync(args); builder.TestHostControllers.AddXXX(/* ... */);
Ekstensi di luar proses diperlukan saat:
- Anda perlu mengatur variabel lingkungan sebelum host pengujian dimulai.
- Anda perlu memantau host pengujian secara eksternal karena kode pengguna mungkin crash atau menggantung proses.
Ketika ekstensi di luar proses terdaftar, platform memulai proses kedua secara otomatis.
Antarmuka IExtension
Semua titik perluasan mewarisi dari IExtension, yang menyediakan identifikasi dan pilihan ikut serta/pilihan keluar:
public interface IExtension
{
string Uid { get; }
string Version { get; }
string DisplayName { get; }
string Description { get; }
Task<bool> IsEnabledAsync();
}
-
Uid: Pengidentifikasi unik untuk ekstensi. Pilih nilai unik untuk menghindari konflik. -
Version: Versi ekstensi, menggunakan penerapan versi semantik. -
DisplayName: Nama yang mudah digunakan yang muncul di log dan--infooutput. -
Description: Deskripsi yang muncul dalam--infooutput. -
IsEnabledAsync(): Kembalikanfalseuntuk mengecualikan ekstensi dari sesi. Biasanya keputusan didasarkan pada konfigurasi atau opsi baris perintah.
Apa yang harus dibaca berikutnya
-
Membangun kerangka kerja pengujian: Membuat implementasi kustom
ITestFramework, menangani permintaan, dan melaporkan hasil pengujian. - Membangun ekstensi: Membuat ekstensi dalam proses dan di luar proses seperti konsumen data, penangan sesi, dan monitor proses.
- VSTest Bridge: Menyederhanakan migrasi kerangka kerja pengujian berbasis VSTest yang ada ke Microsoft.Testing.Platform.
- Kemampuan: Mendeklarasikan dan mengkueri kerangka kerja dan kemampuan ekstensi.
- Services: konfigurasi akses, pencatatan log, bus pesan, dan layanan platform lainnya.