Compartilhar via


Visão geral do Microsoft.Testing.Platform

O Microsoft.Testing.Platform é uma alternativa leve e portátil ao VSTest para executar testes em todos os contextos, incluindo pipelines de CI (integração contínua), CLI, Gerenciador de Teste do Visual Studio, Gerenciador de Teste do VS Code. O Microsoft.Testing.Platform é inserido diretamente em seus projetos de teste e não há dependências de outro aplicativo, como vstest.console ou dotnet test, necessários para executar seus testes.

Microsoft.Testing.Platform é de código aberto. Você pode encontrar o código Microsoft.Testing.Platform no repositório do Git microsoft/testfx.

Estruturas de teste com suporte

  • MSTest. No MSTest, o suporte de Microsoft.Testing.Platform é feito por meio do executor do MSTest.
  • NUnit. No NUnit, o suporte de Microsoft.Testing.Platform é feito por meio do executor do NUnit.
  • xUnit.net: Em xUnit.net, o suporte de Microsoft.Testing.Platform é feito via executor xUnit.net.
  • TUnit: totalmente criado com base na Microsoft.Testing.Platform. Para obter mais informações, consulte a documentação do TUnit

Executar e depurar testes

Os projetos de teste do Microsoft.Testing.Platform são criados como executáveis que podem ser executados (ou depurados) diretamente. Não há nenhum console ou comando de execução de teste extra. O aplicativo encerra com um código de saída diferente de zero em caso de erro, como é típico na maioria dos executáveis. Para obter mais informações sobre os códigos de saída conhecidos, consulte Códigos de saída do Microsoft.Testing.Platform.

Importante

Por padrão, Microsoft.Testing.Platform coleta telemetria. Para obter mais informações e opções sobre como recusar, consulte a telemetria Microsoft.Testing.Platform.

Publicar o projeto de teste usando dotnet publish e executar o aplicativo diretamente é outra maneira de executar seus testes. Por exemplo, executando o ./Contoso.MyTests.exe. Em alguns cenários, também é viável usar dotnet build para produzir o executável, mas pode haver casos especiais a serem considerados, como AOT nativo.

Use dotnet run.

O comando dotnet run pode ser usado para criar e executar seu projeto de teste. Esta é a maneira mais fácil, embora às vezes mais lenta, de executar seus testes. Usar dotnet run é prático quando você está editando e executando testes localmente, pois garante que o projeto de teste seja recriado quando necessário. O dotnet run também localizará automaticamente o projeto na pasta atual.

dotnet run --project Contoso.MyTests

Para obter mais informações sobre dotnet run, confira dotnet run.

Use dotnet exec.

O comando dotnet exec ou dotnet é usado para executar um projeto de teste já criado. Essa é uma alternativa para executar o aplicativo diretamente. O dotnet exec requer o caminho para a dll do projeto de teste compilado.

dotnet exec Contoso.MyTests.dll

ou

dotnet Contoso.MyTests.dll

Observação

Fornecer o caminho para o executável do projeto de teste (*.exe) resulta em um erro:

Error:
  An assembly specified in the application dependencies manifest
  (Contoso.MyTests.deps.json) has already been found but with a different
  file extension:
    package: 'Contoso.MyTests', version: '1.0.0'
    path: 'Contoso.MyTests.dll'
    previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'

Para obter mais informações sobre dotnet exec, confira dotnet exec.

Use dotnet test.

Microsoft.Testing.Platform oferece uma camada de compatibilidade com vstest.console.exe e dotnet test garantindo que você possa executar seus testes como antes, ao mesmo tempo que habilita um novo cenário de execução.

dotnet test Contoso.MyTests.dll

Opções

A lista abaixo descreve apenas as opções da plataforma. Para ver as opções específicas oferecidas por cada extensão, confira a página de documentação da extensão ou use a opção --help.

  • --diagnostic

Habilita o log de diagnóstico. O nível de log padrão é Trace. O arquivo é escrito no diretório de saída com o seguinte formato de nome, log_[MMddHHssfff].diag.

  • --diagnostic-filelogger-synchronouswrite

Força o agente de arquivos interno a gravar logs de forma síncrona. Útil para cenários em que você não deseja perder nenhuma entrada de log (se o processo falhar). Isso reduz a velocidade da execução do teste.

  • --diagnostic-output-directory

O diretório de saída do log de diagnóstico; se não for especificado, o arquivo será gerado no diretório TestResults padrão.

  • --diagnostic-output-fileprefix

O prefixo do nome do arquivo de log. Assume o padrão de "log_".

  • --diagnostic-verbosity

Define o nível de detalhamento quando a opção --diagnostic é usada. Os valores disponíveis são Trace, Debug, Information, Warning, Error ou Critical.

  • --help

Imprime uma descrição de como usar o comando.

  • -ignore-exit-code

Permite que alguns códigos de saída diferentes de zero sejam ignorados e, em vez disso, retornados como 0. Para obter mais informações, consulte Ignorar códigos de saída específicos.

  • --info

Exibe informações avançadas sobre o aplicativo de teste .NET, como:

  • A plataforma.
  • O ambiente.
  • Cada provedor de linha de comando registrado, como its, name, version, description e options.
  • Cada ferramenta registrada, como its, command, name, version e description, e todos os provedores de linha de comando.

Este recurso é usado para entender as extensões que estariam registrando a mesma opção de linha de comando ou as alterações nas opções disponíveis entre várias versões de uma extensão (ou da plataforma).

  • --list-tests

Liste os testes disponíveis. Os testes não serão executados.

  • --minimum-expected-tests

Especifica o número mínimo de testes que devem ser executados. Por padrão, espera-se que pelo menos um teste seja executado.

  • --results-directory

O diretório em que os resultados de teste serão colocados. Se o diretório especificado não existir, ele será criado. O padrão é TestResults no diretório que contém o aplicativo de teste.

Integração do MSBuild

O pacote NuGet Microsoft.Testing.Platform.MSBuild fornece várias integrações para a Microsoft.Testing.Platform com o MSBuild:

  • Suporte para dotnet test. Para obter mais informações, consulte a integração de teste dotnet.
  • Suporte para ProjectCapability obrigatório para o Visual Studio e os Visual Studio Code Exploradores de Testes.
  • Geração automática do ponto de entrada (método Main).
  • Geração automática do arquivo de configuração.

Observação

Essa integração funciona de maneira transitiva (um projeto que faz referência a outro projeto que faz referência a esse pacote se comportará como se fizesse referência ao pacote) e pode ser desabilitada por meio da IsTestingPlatformApplication propriedade do MSBuild.

Confira também