Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O MTP dá suporte ao uso de arquivos de configuração e variáveis de ambiente para configurar o comportamento da plataforma de teste. Este artigo descreve as configurações que você pode usar para configurar a plataforma de teste.
testconfig.json
A plataforma de teste usa um arquivo de configuração chamado [appname].testconfig.json para configurar o comportamento da plataforma de teste. O arquivo testconfig.json é um arquivo JSON que contém as configurações da plataforma de teste.
O arquivo testconfig.json tem a seguinte estrutura:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
A plataforma detectará e carregará automaticamente o arquivo [appname].testconfig.json localizado no diretório de saída do projeto de teste (próximo ao executável).
Ao usar Microsoft.Testing.Platform.MSBuild, você pode simplesmente criar um arquivo testconfig.json que será renomeado automaticamente para [appname].testconfig.json e movido para o diretório de saída do projeto de teste.
A partir do MTP 1.5, você pode usar o argumento --config-file de linha de comando para especificar o caminho para o testconfig.json. Esse arquivo tem precedência sobre o arquivo [appname].testconfig.json .
Observação
O arquivo [appname].testconfig.json será substituído em builds subsequentes.
Usar um testconfig.json centralizado
Se você quiser um único arquivo testconfig.json compartilhado entre vários projetos de teste, poderá colocá-lo em um local central e passá-lo via --config-file. Quando o MSBuild está disponível (por exemplo, dotnet test ou dotnet run), você pode usar a TestingPlatformCommandLineArguments propriedade MSBuild para passar automaticamente o argumento. Adicionar isso a um Directory.Build.props na raiz do repositório garante que todos os projetos de teste usem a mesma configuração:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Precedência de configuração
Quando a mesma configuração pode ser especificada de várias maneiras, o MTP a resolve na ordem a seguir (a primeira correspondência vence):
- Argumentos de linha de comando (por exemplo,
--results-directory) - Variáveis de ambiente
- configurações de testconfig.json
- Padrões integrados
Opções de plataforma
A platformOptions seção do arquivo testconfig.json configura o comportamento principal da plataforma de teste. A tabela a seguir lista todas as opções de plataforma com suporte:
| Entry | Default | Descrição |
|---|---|---|
resultDirectory |
TestResults |
O diretório em que os resultados do teste são colocados. Pode ser um caminho relativo (resolvido do diretório de trabalho atual) ou um caminho absoluto. A --results-directory opção de linha de comando tem precedência. |
exitProcessOnUnhandledException |
false |
Quando definido como true, o processo do host de teste é encerrado imediatamente quando ocorrem exceções sem tratamento, em vez de permitir um encerramento normal. A TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variável de ambiente (valores 1 ou 0) tem precedência. |
Observação
Existem opções internas adicionais da plataforma para cenários avançados (como limites de tempo de pipes nomeados para controladores do host de teste). Essas opções se destinam ao uso da infraestrutura e não são abordadas aqui.
Exemplo:
{
"platformOptions": {
"resultDirectory": "../../TestResults",
"exitProcessOnUnhandledException": false
}
}
As opções de extensão estão disponíveis apenas pela CLI
Recursos da extensão, como dump de falha, dump de travamento, nova tentativa, relatórios TRX e cobertura de código, não são configuráveis via testconfig.json. Esses recursos são configurados exclusivamente por meio de argumentos de linha de comando.
Para obter uma referência completa das opções de linha de comando, consulte a referência de opções da CLI mtp.
Testar configurações específicas da estrutura
As estruturas de teste podem definir suas próprias seções de configuração no arquivo testconfig.json . Consulte a documentação da estrutura de teste:
- MSTest: Configurar o MSTest — testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: consulte a documentação do NUnit para obter informações sobre o suporte mais recente ao Microsoft.Testing.Platform.
- TUnit: consulte a documentação do TUnit para obter as informações mais recentes sobre o suporte ao Microsoft.Testing.Platform.
Exemplo de testconfig.json
O exemplo a seguir mostra um arquivo testconfig.json que define as opções de plataforma e as configurações do MSTest:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migrando de .runsettings para testconfig.json
Se você estiver migrando de um arquivo .runsettings , a tabela a seguir mapeará as configurações comuns para seus testconfig.json equivalentes ou alternativas:
| Configuração .runsettings | equivalente ao testconfig.json | Observações |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Nenhum equivalente | O paralelismo em nível de processo é controlado por dotnet test --max-parallel-test-modules ou pela opção /m do MSBuild. |
MSTest/* |
mstest.* |
Consulte Configurar o MSTest — testconfig.json. |
xUnit/* |
xUnit.* |
Consulte xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Apenas CLI | Use --report-trx ou opções de CLI semelhantes. |
DataCollectionRunSettings (culpa) |
Apenas CLI | Use as opções de linha de comando --crashdump e --hangdump. Veja Arquivos de despejo de falhas e travamentos. |
DataCollectionRunSettings (cobertura) |
Somente CLI | Use a opção de CLI --coverage. Consulte a cobertura do Código. |
TestRunParameters |
--test-parameter CLI |
Use --test-parameter key=value na linha de comando. |
Variáveis de ambiente
As variáveis de ambiente podem ser usadas para fornecer algumas informações de configuração de runtime.
Observação
As variáveis de ambiente têm precedência sobre as configurações no arquivo testconfig.json .
Variável de ambiente TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION
Quando configurado como 1, o processo host de teste é encerrado imediatamente ao ocorrerem exceções não tratadas. Quando definido como 0, a plataforma permite o desligamento normal. Essa configuração tem precedência sobre a platformOptions:exitProcessOnUnhandledException configuração.
Variável de ambiente TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT
Substitui o tempo limite padrão (300 segundos) usado para conexões de pipe nomeado entre o controlador do host de teste e o host de teste. O valor deve ser uma TimeSpancadeia de caracteres compatível.
Variável de ambiente TESTINGPLATFORM_UI_LANGUAGE
A partir do MTP 1.5, essa variável de ambiente define o idioma da plataforma para exibir mensagens e logs usando um valor de localidade, como en-us. Esse idioma tem precedência sobre as linguagens do SDK do Visual Studio e do .NET. Os valores com suporte são os mesmos do Visual Studio. Para obter mais informações, confira a seção sobre como alterar o idioma do instalador na documentação de instalação do Visual Studio.
Variável de ambiente TESTINGPLATFORM_DIAGNOSTIC
Se definido como 1, habilita o log de diagnóstico.
Variável de ambiente TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY
Define o nível de verbosidade quando o diagnóstico está habilitado. Os valores disponíveis são Trace, Debug, Information, Warning, Errorou Critical.
Variável de ambiente TESTINGPLATFORM_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.
Variável de ambiente TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX
O prefixo do nome do arquivo de log. Usa "log_" como padrão.
Variável de ambiente TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE
Força o logger de arquivos embutido 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.
Variável de ambiente TESTINGPLATFORM_EXITCODE_IGNORE
Uma lista separada por ponto-e-vírgula de códigos de saída a serem ignorados. Quando um código de saída é ignorado, o processo retorna 0 em vez disso. Por exemplo, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 ignora falhas de teste e cenários sem testes executados.
Observação
As variáveis de ambiente relacionadas ao diagnóstico têm precedência sobre seus argumentos de linha de comando correspondentes --diagnostic-* .