Opções da linha de comando de VSTest.Console.exe

O VSTest.Console.exe é a ferramenta de linha de comando para execução de testes. É possível especificar várias opções em qualquer ordem na linha de comando. Essas opções são listadas em Opções gerais de linha de comando.

Observação

O adaptador MSTest no Visual Studio também funciona no modo herdado (equivalente à execução de testes com mstest.exe) para compatibilidade. No modo herdado, ele não pode aproveitar o recurso TestCaseFilter. O adaptador pode alternar para o modo herdado quando um arquivo testsettings é especificado, forcelegacymode é definido como true em um arquivo runsettings ou usando atributos como HostType.

Para executar testes automatizados em um computador baseado na arquitetura ARM, use o VSTest.Console.exe.

Abra o Prompt de Comando do Desenvolvedor para usar a ferramenta de linha de comando ou encontre a ferramenta em %Arquivos de Programas(x86)%\Microsoft Visual Studio\version<\><edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Opções gerais de linha de comando

A tabela a seguir lista todas as opções para o VSTest.Console.exe, além de breves descrições sobre elas. É possível ver um resumo semelhante digitando VSTest.Console/? na linha de comando.

Opção Descrição
[nomes dos arquivos de teste] Executa testes dos arquivos especificados. Separa vários nomes de arquivo de teste com espaços.
Exemplos: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Settings:[nome do arquivo] Execute testes com configurações adicionais, como coletores de dados. Para obter mais informações, consulte Configurar testes de unidade usando um arquivo .runsettings
Exemplo: /Settings:local.runsettings
/Tests:[nome do teste] Executa testes com nomes que contêm os valores fornecidos. Esse comando corresponde ao nome de teste completo, incluindo o namespace. Para fornecer vários valores, separe-os por vírgulas.
Exemplo: /Tests:TestMethod1,testMethod2
A opção de linha de comando /Tests não pode ser usada com a opção de linha de comando /TestCaseFilter.
/Parallel Especifica que os testes sejam executados em paralelo. Por padrão, todos os núcleos disponíveis no computador podem ser usados. Você pode configurar o número de núcleos a serem usados em um arquivo de configurações.
/Enablecodecoverage Permite o adaptador de diagnóstico de dados CodeCoverage na execução de teste.
As configurações padrão serão usadas se não forem especificadas usando o arquivo de configurações.
/InIsolation Executa os testes em um processo isolado.
Esse isolamento torna o processo vstest.console.exe menos suscetível a ser interrompido acidentalmente nos testes. Entretanto, os testes podem ser executados mais lentamente.
/UseVsixExtensions Essa opção faz com que o processo vstest.console.exe use ou ignore as extensões VSIX instaladas (se houver) na execução de teste.
Essa opção foi preterida. A partir da próxima versão principal do Visual Studio, essa opção poderá ser removida. A migração para o consumo de extensões foi disponibilizada como um pacote NuGet.
Exemplo: /UseVsixExtensions:true
/TestAdapterPath:[caminho] Força o processo vstest.console.exe a usar adaptadores de teste personalizados de um caminho especificado (se houver) na execução de teste.
Exemplo: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[tipo de plataforma] Força a plataforma determinada a ser usada, em vez da plataforma determinada do runtime atual. Essa opção é capaz de forçar apenas plataformas x86 e x64 no Windows. A opção ARM está quebrada e resultará em x64 na maioria dos sistemas.
NÃO especifique essa opção para execução em runtimes que não estejam na lista de valores válidos, como ARM64.
Os valores válidos são x86, x64 e ARM.
/Framework: [versão do framework] Versão do .NET de destino a ser usada na execução do teste.
Exemplos de valores são Framework35, Framework40, Framework45, FrameworkUap10 e .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute é usado para detectar automaticamente essa opção do assembly e usa como padrão Framework40 quando o atributo não está presente. Você deve especificar essa opção explicitamente se remover TargetFrameworkAttribute de seus assemblies do .NET Core.
Se a estrutura de destino for especificada como Framework35, os testes serão executados no "modo de compatibilidade" do CLR 4.0.
Exemplo: /Framework:framework40
/TestCaseFilter:[expressão] Execute testes que correspondam à expressão fornecida.
<Expressão> é do formato <propriedade>=<valor>[<Expressão>].
Exemplo: /TestCaseFilter:"Priority=1"
Exemplo: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
A opção de linha de comando /TestCaseFilter não pode ser usada com a opção de linha de comando /Tests.
Para obter informações sobre como criar e usar expressões, confira Filtro TestCase.
/? Exibe informações de uso.
/Logger:[uri/nome_amigável] Especificar um agente para resultados do teste. Especifique o parâmetro várias vezes para habilitar vários agentes.
Exemplo: para registrar os resultados em um arquivo de resultados do teste do Visual Studio (TRX), use
/Logger:trx
[; LogFileName=<Padrão para nome de arquivo único>]
/ListTests:[nome do arquivo] Lista testes descobertos do contêiner de teste fornecido.
Nota: A /TestCaseFilters opção não tem efeito ao listar testes, apenas controla quais testes são executados.
/ListDiscoverers Lista detectores de testes instalados.
/ListExecutors Lista executores de testes instalados.
/ListLoggers Lista agentes de testes instalados.
/ListSettingsProviders Lista provedores de configurações de teste instalados.
/Blame Executa os testes no modo blame. Essa opção é útil para isolar testes problemáticos que causam falha no host de teste. Quando uma falha é detectada, ela cria um arquivo de sequência em TestResults/<Guid>/<Guid>_Sequence.xml que captura a ordem dos testes que foram executados antes da falha. Para saber mais, confira Anotar coletor de dados.
/Diag:[nome do arquivo] Grava os logs de rastreamento de diagnóstico no arquivo especificado.
/ResultsDirectory:[caminho] O diretório de resultados de teste será criado no caminho especificado, se não existir.
Exemplo: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[IDProcessoPai] ID do Processo Pai responsável por iniciar o processo atual.
/Port:[porta] A porta para a conexão de soquete e recebimento das mensagens do evento.
/Collect:[NomeAmigável ColetorDados] Habilita o coletor de dados para a execução de teste. Mais informações.

Dica

As opções e os valores não diferenciam maiúsculas de minúsculas.

Exemplos

A sintaxe para execução do vstest.console.exe é:

vstest.console.exe [TestFileNames] [Options]

Por padrão, o comando retorna 0 quando é encerrado normalmente, mesmo que nenhum teste seja descoberto. Se você quiser retornar um valor diferente de zero se nenhum teste for descoberto, use a opção <TreatNoTestsAsError>true</TreatNoTestsAsError> de runsettings.

O seguinte comando executa o vstest.console.exe para a biblioteca de testes myTestProject.dll:

vstest.console.exe myTestProject.dll

O comando a seguir executa o vstest.console.exe com vários arquivos de teste. Separe os nomes de arquivo de teste com espaços:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

O comando a seguir executa o vstest.console.exe com várias opções. Ele executa os testes no arquivo myTestFile.dll em um processo isolado e usa as configurações especificadas no arquivo Local.RunSettings. Além disso, ele apenas executa os testes marcados como "Prioridade=1" e registra em log os resultados em um arquivo .trx.

vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx

O seguinte comando executa o vstest.console.exe com a opção /blame para a biblioteca de testes myTestProject.dll:

vstest.console.exe myTestFile.dll /blame

Se ocorrer uma falha de host de teste, o arquivo sequence.xml será gerado. O arquivo contém nomes totalmente qualificados dos testes em sua sequência de execução até e incluindo o teste específico que estava em execução no momento da falha.

Se não houver falha no host de teste, o arquivo sequence.xml não será gerado.

Exemplo de um arquivo sequence.xml gerado:

<?xml version="1.0"?>
<TestSequence>
  <Test Name="TestProject.UnitTest1.TestMethodB" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
  <Test Name="TestProject.UnitTest1.TestMethodA" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
</TestSequence>

Exemplo de UWP

Para UWP, o arquivo appxrecipe deve ser referenciado em vez de uma DLL.

vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe