Integração com Microsoft.Extensions

Essas extensões fazem a integração entre o Microsoft.Testing.Platform (MTP) e as bibliotecas Microsoft.Extensions.* que seu aplicativo já usa, para que os componentes da plataforma e das extensões passem pela mesma infraestrutura que o restante do seu código. Cada extensão requer um pacote NuGet adicional, conforme descrito em cada seção.

Dica

Ao usar o Microsoft.Testing.Platform.MSBuild (incluído transitivamente por MSTest, NUnit e xUnit runners), essas extensões são registradas automaticamente quando você instala seus pacotes NuGet , sem necessidade de alterações de código. O registro manual especificado neste artigo só será necessário se você desabilitar o ponto de entrada gerado automaticamente definindo <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Ponte de logs

A ponte de logs encaminha os logs de diagnóstico do Microsoft.Testing.Platform para ILogger, de modo que os logs da plataforma e da extensão fluam pelo mesmo fluxo Microsoft.Extensions.Logging já usado pelo seu aplicativo. Você pode reutilizar uma stack de logging existente — Console, Debug, Serilog, Application Insights, OpenTelemetry ou um ILoggerProvider personalizado — sem precisar escrever um provedor de logger do MTP. Esta extensão requer o pacote NuGet Microsoft.Testing.Extensions.Logging.

Note

Disponível no MTP a partir da versão 2.3.0. Essa extensão é experimental e suas opções e formato de saída podem mudar em uma versão futura.

A ponte encaminha cada mensagem somente quando o registro de diagnóstico da plataforma está habilitado. Quando o nível de log efetivo da plataforma é None (o padrão, a menos que você passe --diagnostic), o delegado de configuração não é invocado e nenhuma fábrica de loggers é criada. Os filtros por categoria definidos no ILoggingBuilder podem restringir o nível de diagnóstico efetivo da plataforma, mas eles não podem ampliá-lo.

Registro manual

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