Microsoft. Integrasi ekstensi

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 (disertakan secara transitif oleh runner MSTest, NUnit, dan xUnit), ekstensi ini didaftarkan secara otomatis saat Anda menginstal paket NuGet mereka — tidak ada perubahan kode yang diperlukan. Pendaftaran manual yang ditentukan dalam artikel ini hanya diperlukan jika Anda menonaktifkan titik masuk yang dihasilkan secara otomatis dengan mengatur <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

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());