Partilhar via


teste dotnet com Microsoft.Testing.Platform (MTP)

Este artigo aplica-se a: ✔️ SDK do .NET 10 e versões posteriores

Nome

dotnet test - Driver de teste .NET usado para executar testes unitários com Microsoft.Testing.Platform.

Sinopse

dotnet test
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>] 
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<args>...]

dotnet test -h|--help

Description

Com a Microsoft Testing Platform, dotnet test opera mais rápido do que com o VSTest. Os argumentos relacionados ao teste não são mais fixos, pois estão vinculados às extensões registradas no(s) projeto(s) de teste. Além disso, o MTP suporta um filtro de globbing ao executar testes. Para obter mais informações, consulte Microsoft.Testing.Platform.

Advertência

Quando Microsoft.Testing.Platform é aceito via global.json, dotnet test espera que todos os projetos de teste usem Microsoft.Testing.Platform. É um erro se qualquer um dos projetos de teste usar VSTest.

Restauração implícita

Não é necessário executádotnet restore porque ele é executado implicitamente por todos os comandos que exigem uma restauração para ocorrer, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishe dotnet pack. Para desativar a restauração implícita, use a opção --no-restore.

O comando dotnet restore ainda é útil em determinados cenários em que a restauração explícita faz sentido, como compilações de integração contínua no de Serviços de DevOps do Azure ou em sistemas de compilação que precisam controlar explicitamente quando a restauração ocorre.

Para obter informações sobre como gerenciar feeds NuGet, consulte a documentação dotnet restore.

Opções

Observação

Você pode usar apenas uma das seguintes opções de cada vez: --project, --solutionou --test-modules. Essas opções não podem ser combinadas. Além disso, ao usar --test-modules, não é possível especificar --arch, --configuration, --framework, --osou --runtime. Estas opções não são relevantes para um módulo já construído.

  • --project <PROJECT_PATH>

    Especifica o caminho do arquivo de projeto a ser executado (nome da pasta ou caminho completo). Se não for especificado, o padrão será o diretório atual.

  • --solution <SOLUTION_PATH>

    Especifica o caminho do arquivo de solução a ser executado (nome da pasta ou caminho completo). Se não for especificado, o padrão será o diretório atual.

  • --test-modules <EXPRESSION>

    Filtra módulos de teste usando globbing de arquivo no .NET. Apenas os testes pertencentes a esses módulos de teste serão executados. Para obter mais informações e exemplos sobre como usar o globbing de arquivo no .NET, consulte File globbing.

  • --root-directory <ROOT_PATH>

    Especifica o diretório raiz da opção --test-modules. Ele só pode ser usado com a opção --test-modules.

  • --max-parallel-test-modules <NUMBER>

    Especifica o número máximo de módulos de teste que podem ser executados em paralelo. A predefinição é Environment.ProcessorCount.

  • -a|--arch <ARCHITECTURE>

    Especifica a arquitetura de destino. Esta é uma sintaxe abreviada para definir o Runtime Identifier (RID), onde o valor fornecido é combinado com o RID padrão. Por exemplo, em uma win-x64 máquina, especificar --arch x86 define o RID como win-x86. Se você usar essa opção, não use a -r|--runtime opção. Disponível desde o .NET 6 Preview 7.

  • -c|--configuration <CONFIGURATION>

    Define a configuração de compilação. O padrão para a maioria dos projetos é Debug, mas você pode substituir as definições de configuração de compilação em seu projeto.

  • -f|--framework <FRAMEWORK>

    O moniker da estrutura de destino (TFM) da estrutura de destino para a qual executar testes. A estrutura de destino também deve ser especificada no arquivo de projeto.

  • --os <OS>

    Especifica o sistema operacional (SO) de destino. Esta é uma sintaxe abreviada para definir o Runtime Identifier (RID), onde o valor fornecido é combinado com o RID padrão. Por exemplo, em uma win-x64 máquina, especificar --os linux define o RID como linux-x64. Se você usar essa opção, não use a -r|--runtime opção. Disponível desde .NET 6.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    O tempo de execução de destino para testar.

    Formulário -r curto disponível a partir do .NET SDK 7.

    Observação

    Executar testes para uma solução com uma propriedade global RuntimeIdentifier (explicitamente ou via --arch, --runtime, ou --os) não é suportado. Em vez disso, defina RuntimeIdentifier em um nível de projeto individual.

  • -v|--verbosity <LEVEL>

    Define o nível de verbosidade do comando. Os valores permitidos são q[uiet], m[inimal], n[ormal], d[etailed], e diag[nostic]. Para obter mais informações, consulte LoggerVerbosity.

  • --no-build

    Especifica que o projeto de teste não foi criado antes de ser executado. Também estabelece implicitamente a bandeira --no-restore.

  • --no-restore

    Especifica que uma restauração implícita não é executada ao executar o comando.

  • --no-ansi

    Desativa a saída de caracteres de escape ANSI para a tela.

  • --no-progress

    Desabilita o relatório de progresso para a tela.

  • --output <VERBOSITY_LEVEL>

    Especifica a verbosidade de saída ao relatar testes. Os valores válidos são Normal e Detailed. A predefinição é Normal.

  • --no-launch-profile

    Não tentes usar launchSettings.json para configurar a aplicação. Por padrão, launchSettings.json é usado, que pode aplicar variáveis de ambiente e argumentos de linha de comando ao executável de teste.

  • --no-launch-profile-arguments

    Não uses argumentos especificados por commandLineArgs no perfil de lançamento para executar a aplicação.

  • --property:<NAME>=<VALUE>

    Define uma ou mais propriedades do MSBuild. Especifique várias propriedades repetindo a opção:

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    A forma -p abreviada pode ser usada para --property. O mesmo se aplica à /property:property=value e a sua forma abreviada é /p. Mais informações sobre os argumentos disponíveis podem ser encontradas na documentação do dotnet msbuild.

  • -?|-h|--help

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

  • args

    Especifica argumentos extras a serem passados para o(s) aplicativo(s) de teste. Use um espaço para separar vários argumentos. Para obter mais informações e exemplos sobre o que passar, consulte visão geral do Microsoft.Testing.Platform e extensões Microsoft.Testing.Platform.

    Sugestão

    Para especificar argumentos extras para projetos específicos, use a propriedade TestingPlatformCommandLineArguments MSBuild.

Observação

Para habilitar o log de rastreamento para um arquivo, use a variável de ambiente DOTNET_CLI_TEST_TRACEFILE para fornecer o caminho para o arquivo de rastreamento.

Examples

  • Execute os testes no projeto ou solução no diretório atual:

    dotnet test
    
  • Execute os testes no TestProject projeto:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Execute os testes na solução TestProjects:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Execute os testes usando TestProject.dll assembly:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Execute os testes usando TestProject.dll assembly com o diretório raiz:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Execute os testes no diretório atual com cobertura de código:

    dotnet test --coverage
    
  • Execute os testes no TestProject projeto, fornecendo o -bl argumento (log binário) para msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Execute os testes no TestProject projeto, definindo a propriedade MSBuild DefineConstants como DEV:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

Consulte também