Compartilhar via


VSTest.Console.exe opções de linha de comando

VSTest.Console.exe é a ferramenta de linha de comando para executar testes. Você pode especificar várias opções em qualquer ordem na linha de comando. Essas opções estão listadas em opções gerais de linha de comando.

Nota

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 verdadeiro em um arquivo de runsettings ou usando atributos como HostType.

Para executar testes automatizados em um computador baseado em arquitetura do ARM, você deve usar VSTest.Console.exe.

Abra prompt de comando do desenvolvedor para usar a ferramenta de linha de comando ou encontre a ferramenta em %Program Files(x86)%\Microsoft Visual Studio\<versão>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Opções gerais de linha de comando

A tabela a seguir lista todas as opções para VSTest.Console.exe e descrições curtas delas. Você pode ver um resumo semelhante digitando VSTest.Console/? em uma linha de comando.

Opção Descrição
[nomes de arquivo de teste] Execute testes dos arquivos especificados. Separe 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 de teste] Execute 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 /TestCaseFilter linha de comando.
/ paralela Especifica que os testes sejam executados em paralelo. Por padrão, até 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 Habilita o adaptador de diagnóstico de dados CodeCoverage na execução do 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 provável de ser interrompido em um erro nos testes, mas os testes podem ser executados mais lentamente.
/UseVsixExtensions Essa opção faz com que o processo de vstest.console.exe use ou ignore as extensões VSIX instaladas (se houver) na execução do teste.
Essa opção foi preterida. A partir da próxima versão principal do Visual Studio, essa opção pode ser removida. Mova para as extensões de consumo disponibilizadas como um pacote NuGet.
Exemplo: /UseVsixExtensions:true
/TestAdapterPath:[caminho] Força o processo de vstest.console.exe a usar adaptadores de teste personalizados de um caminho especificado (se houver) na execução do 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 as 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 estão na lista de valores válidos, como ARM64.
Os valores válidos são x86, x64 e ARM.
/Framework: [versão da estrutura] Versão do .NET de destino a ser usada para execução de teste.
Os valores de exemplo são Framework35, Framework40, Framework45, FrameworkUap10, .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 o 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" clr 4.0.
Exemplo: /Framework:framework40
/TestCaseFilter:[ expressão] Execute testes que correspondam à expressão fornecida.
<Expression> é do formato <propriedade>=<value>[|<Expression>].
Exemplo: /TestCaseFilter:"Priority=1"
Exemplo: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
A opção /TestCaseFilter linha de comando não pode ser usada com a opção /Tests linha de comando.
Para obter informações sobre como criar e usar expressões, consulte filtro TestCase.
/? Exibe informações de uso.
/Agente:[uri/friendlyname] Especifique um agente para resultados de teste. Especifique o parâmetro várias vezes para habilitar vários agentes.
Exemplo: para registrar os resultados em um TRX (Arquivo de Resultados de Teste) do Visual Studio, use
/Logger:trx
[; LogFileName=<Padrões para o nome de arquivo exclusivo>]
/ListTests:[nome do arquivo] Lista os testes descobertos do contêiner de teste fornecido.
Observação: a opção /TestCaseFilters não tem efeito ao listar testes; ele controla apenas quais testes são executados.
/ListDiscoverers Lista os descobridores de teste instalados.
/ListExecutors Lista executores de teste instalados.
/ListLoggers Lista os agentes de teste instalados.
/ListSettingsProviders Lista os provedores de configurações de teste instalados.
/Blame Executa os testes no modo de culpa. Essa opção é útil para isolar testes problemáticos que causam a falha do 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 obter mais informações, consulte o coletor de dados Blame.
/Diag:[nome do arquivo] Grava logs de rastreamento de diagnóstico no arquivo especificado.
/ResultsDirectory:[path] O diretório de resultados do teste será criado no caminho especificado, se não existir.
Exemplo: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId] ID do processo pai responsável por iniciar o processo atual.
/Port:[port] A porta para conexão de soquete e o recebimento das mensagens de evento.
/Collect:[dataCollector friendlyName] Habilita o coletor de dados para a execução de teste. Mais informações.

Ponta

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

Exemplos

A sintaxe para executar 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 <TreatNoTestsAsError>true</TreatNoTestsAsError> opção runsettings.

O comando a seguir executa vstest.console.exe para a biblioteca de teste myTestProject.dll:

vstest.console.exe myTestProject.dll

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

vstest.console.exe myTestFile.dll myOtherTestFile.dll

O comando a seguir é executado 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 executa apenas testes marcados como "Priority=1" e registra os resultados em um arquivo de .trx.

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

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

vstest.console.exe myTestFile.dll /blame

Se ocorrer uma falha no 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 de 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