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.
Ekstensi ini menjembatani Microsoft.Testing.Platform (MTP) dengan pustaka Microsoft.Extensions.* yang sudah digunakan oleh aplikasi Anda, sehingga komponen platform dan ekstensi berjalan melalui infrastruktur yang sama seperti kode Anda yang lain. Setiap ekstensi memerlukan paket NuGet tambahan, seperti yang dijelaskan di setiap bagian.
Tip
Saat menggunakan Microsoft.Testing.Platform.MSBuild, paket logging terdaftar secara otomatis dengan entry point yang dihasilkan. Paket konfigurasi memerlukan instans IConfiguration, dan paket hosting memerlukan baik TestingPlatformHostFactory maupun titik entri kustom, jadi ikuti bagian registrasi masing-masing.
Jembatan pengelogan
Jembatan pencatatan meneruskan log diagnostik Microsoft.Testing.Platform ke ILogger, sehingga log platform dan ekstensi mengalir melalui pipeline Microsoft.Extensions.Logging yang sama yang sudah digunakan aplikasi Anda. Anda dapat menggunakan kembali tumpukan pengelogan yang ada — Konsol, Debug, Serilog, Application Insights, OpenTelemetry, atau kustom ILoggerProvider — tanpa menulis penyedia pencatat MTP kustom. Ekstensi ini memerlukan paket NuGet Microsoft.Testing.Extensions.Logging.
Note
Tersedia di MTP yang dimulai dengan versi 2.3.0. Ekstensi ini bersifat eksperimental, dan opsi dan format outputnya mungkin berubah dalam versi yang akan datang.
Bridge meneruskan setiap pesan hanya jika pencatatan log diagnostik pada platform diaktifkan. Ketika tingkat log efektif platform adalah None (nilai bawaan, kecuali Anda meneruskan --diagnostic), delegat konfigurasi tidak dipanggil dan tidak ada logger factory yang dibuat. Filter per kategori yang Anda tetapkan di ILoggingBuilder dapat mempersempit tingkat diagnostik efektif platform, tetapi tidak dapat memperlebarnya.
Pendaftaran manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddMicrosoftExtensionsLogging(logging => logging.AddConsole());
Cuplikan konfigurasi
Paket eksperimental Microsoft.Testing.Extensions.Configuration menambahkan rekam jepret baca-saja dari aplikasi yang dimiliki IConfiguration ke alur konfigurasi MTP.
Daftarkan konfigurasi sebelum Anda membuat aplikasi pengujian:
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddMicrosoftExtensionsConfigurationSnapshot(configuration);
Secara bawaan, cuplikan menggunakan urutan 2. Nilai baris perintah MTP (urutan 0) dan variabel lingkungan (urutan 1) lebih diutamakan, sementara rekam jepret lebih diutamakan daripada testconfig.json (urutan 3). Lewati urutan yang berbeda saat aplikasi Anda memerlukan prioritas lain.
MTP membaca rekam jepret saat BuildAsync membangun alur konfigurasi. Perubahan berikutnya dan notifikasi pemuatan ulang tidak diteruskan. Pemanggil mempertahankan kepemilikan konfigurasi, kunci hierarkis menjaga pemisah standar : , dan pendaftaran hanya berlaku untuk proses saat ini. Objek konfigurasi aktif tidak diteruskan ke pengontrol atau proses host pengujian yang dijalankan secara terpisah.
Integrasi dengan host
Paket Microsoft.Testing.Extensions.Hosting eksperimental menjalankan MTP di dalam IHost yang dimiliki aplikasi. Host tetap menjadi akar komposisi dan memiliki penyedia layanan, konfigurasi, pengelogan, penyedia OpenTelemetry, masa pakai, dan pembuangannya.
Untuk titik entri yang dihasilkan, atur TestingPlatformHostFactory agar mengarah ke metode statis bernama lengkap yang mengembalikan objek Task<IHost> baru yang belum dimulai:
<TestingPlatformHostFactory>Contoso.Tests.TestHost.CreateHost</TestingPlatformHostFactory>
Atur TestingPlatformOpenTelemetryMode ke HostOwned saat host memiliki penyedia OpenTelemetry dan proyek pengujian mereferensikan Microsoft.Testing.Extensions.OpenTelemetry. Titik entri yang dihasilkan membuat dan melepaskan host, mempertahankan ekstensi yang didaftarkan sendiri, dan melewati factory untuk baris perintah --help dan --info.
Untuk titik masuk kustom, panggil RunTestingPlatformAsync host dan daftarkan kerangka kerja pengujian melalui panggilan baliknya. Metode mengimpor rekam jepret konfigurasi, meneruskan diagnostik MTP ke host ILoggerFactory, memulai host sebelum MTP, menautkan pembatalan host dan pemanggil ke MTP, mengembalikan kode keluar MTP, dan menghentikan host dalam blok finally . Pemanggil tetap melepas host.
Pastikan output standar bebas dari pesan startup host, shutdown, pencatatan log, dan pengekspor karena MTP menggunakannya untuk mode yang dapat dibaca oleh mesin seperti --list-tests json, mode server JSON-RPC, dan protokol dotnet test. Hindari juga resource global eksklusif dalam host factory yang digunakan dengan ekstensi mulai ulang proses, karena skenario percobaan ulang, crash dump, atau hang dump dapat memanggil host factory pada proses pengontrol dan proses anak.
Important
API konfigurasi dan hosting menggunakan TPEXP ID diagnostik dan mungkin berubah dalam rilis mendatang. Mereka tersedia dalam paket pratinjau MTP 2.5.