Integração com Microsoft.Extensions

Estas extensões fazem a ponte entre a Microsoft. Testing.Platform (MTP) para as Microsoft.Extensions.* bibliotecas que a sua aplicação já utiliza, por isso os componentes da plataforma e da extensão passam pela mesma infraestrutura que o resto do seu código. Cada extensão requer um pacote NuGet adicional, conforme descrito em cada secção.

Gorjeta

Ao usar o Microsoft.Testing.Platform.MSBuild (incluído de forma transitiva pelos runners MSTest, NUnit e xUnit), estas extensões são registadas automaticamente quando instala os seus pacotes NuGet — não são necessárias alterações de código. O registo manual especificado neste artigo só é obrigatório se desativar o ponto de entrada gerado automaticamente ao definir <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.

Ponte madeireira

A ponte de registo encaminha os registos de diagnóstico do Microsoft.Testing.Platform para ILogger, pelo que os registos da plataforma e da extensão fluem pelo mesmo processamento Microsoft.Extensions.Logging que a sua aplicação já utiliza. Pode reutilizar uma pilha de registos existente — Consola, Debug, Serilog, Application Insights, OpenTelemetry ou um personalizado ILoggerProvider — sem precisar de escrever um fornecedor personalizado de registos MTP. Esta extensão requer o pacote NuGet Microsoft.Testing.Extensions.Logging.

Note

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

A ponte encaminha cada mensagem apenas quando o registo de diagnóstico da plataforma está ativado. Quando o nível de registo efetivo da plataforma é None (a predefinição, a menos que seja passado --diagnostic), o delegado de configuração não é invocado e não é criada nenhuma fábrica de registadores. Os filtros por categoria que defines ILoggingBuilder podem restringir o nível de diagnóstico efetivo da plataforma, mas não o conseguem alargar.

Registo manual

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