這些擴充功能可將 Microsoft.Testing.Platform (MTP) 銜接至您的應用程式已在使用的 Microsoft.Extensions.*程式庫,讓平台和擴充元件都能透過與其餘程式碼相同的基礎結構運作。 每個擴充套件都需要額外的 NuGet 套件,如各節所述。
提示
使用 Microsoft.Testing.Platform.MSBuild (由 MSTest、NUnit 和 xUnit 測試框架間接包含)時,這些擴充套件會在安裝 NuGet 套件時自動註冊,不需要改動程式碼。 本文所規定的手動註冊僅在你透過設定 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>關閉自動產生的入口點時才需要。
伐木橋
日誌橋接器會將 Microsoft.Testing.Platform 的診斷日誌轉送到 ILogger,因此平台和擴充功能的日誌會透過你的應用程式已在使用的同一條 Microsoft.Extensions.Logging 管線傳遞。 你可以重用現有的日誌堆疊——Console、Debug、Serilog、Application Insights、OpenTelemetry 或自訂 ILoggerProvider 系統——而不必撰寫自訂的 MTP 記錄器服務。 此擴充功能需要 Microsoft.Testing.Extensions.Logging NuGet 套件。
Note
從 2.3.0 版本起,已支援 MTP。 此擴充仍屬實驗性質,未來版本可能會改變選項與輸出格式。
橋接器只有在平台的診斷日誌啟用時才會轉發每則訊息。 當平台的實際記錄層級為 None(預設值,除非你傳遞 --diagnostic)時,系統不會呼叫設定委派,也不會建立任何記錄器工廠。 你在 ILoggingBuilder 中設定的各類別篩選器可以縮小平台實際生效的診斷層級,但無法放寬該層級。
手動註冊
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddMicrosoftExtensionsLogging(logging => logging.AddConsole());