Microsoft。扩展集成

这些扩展将 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 管道流转。 无需编写自定义 MTP 记录器提供程序,即可重复使用现有的日志记录堆栈(控制台、调试、Serilog、Application Insights、OpenTelemetry 或自定义 ILoggerProvider )。 此扩展需要Microsoft。Testing.Extensions.Logging NuGet 包。

注释

从版本 2.3.0 开始,MTP 中可用。 此扩展是实验性的,其选项和输出格式可能会在将来的版本中更改。

仅在启用了平台的诊断日志记录功能时,桥接器才会转发每条消息。 当平台的有效日志级别为 None 时(默认情况下都是如此,除非传递 --diagnostic),配置委托不会被调用,也不会创建日志记录器工厂。 你在 ILoggingBuilder 中设置的分类筛选器可以缩小平台的有效诊断级别,但不能提高该级别。

手动注册

var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddMicrosoftExtensionsLogging(logging => logging.AddConsole());