Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O MTP suporta a utilização de ficheiros de configuração e variáveis de ambiente para configurar o comportamento da plataforma de teste. Este artigo descreve as definições de configuração 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 definições de configuração para a plataforma de teste.
O arquivo testconfig.json tem a seguinte estrutura:
{
"platformOptions": {
"resultDirectory": "./TestResults"
}
}
A plataforma detetará e carregará automaticamente o arquivo de.testconfig.json [appname] 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 de testconfig.json que será automaticamente renomeado para .testconfig.json [appname] e movido para o diretório de saída do projeto de teste.
A partir do MTP 1.5, podes usar o argumento --config-file da linha de comandos para especificar o caminho até ao testconfig.json. Esse arquivo tem precedência sobre o arquivo.testconfig.json [appname].
Observação
O arquivo.testconfig.json [appname] será substituído em compilações subsequentes.
Utilize um testconfig.json centralizado
Se quiser um único testconfig.json partilhado por vários projetos de teste, pode colocá-lo numa localização central e passá-lo através de --config-file. Quando o MSBuild está disponível (por exemplo, dotnet test ou dotnet run), pode usar a TestingPlatformCommandLineArguments propriedade MSBuild para passar automaticamente o argumento. Adicionar isto a um Directory.Build.props na raiz do repositório garante que todos os projetos de teste usam a mesma configuração:
<PropertyGroup>
<TestingPlatformCommandLineArguments>
$(TestingPlatformCommandLineArguments) --config-file $(MSBuildThisFileDirectory)testconfig.json
</TestingPlatformCommandLineArguments>
</PropertyGroup>
Precedência de configuração
Quando a mesma definição pode ser especificada de várias formas, o MTP resolve-a pela seguinte ordem (vence a primeira partida):
- Argumentos de linha de comandos (por exemplo,
--results-directory) - Variáveis de ambiente
- testconfig.json definições
- Predefinições incorporadas
Opções da plataforma
A platformOptions secção do ficheirotestconfig.json configura o comportamento central da plataforma de teste. A tabela seguinte lista todas as opções de plataforma suportadas:
| Entrada | Predefinição | Descrição |
|---|---|---|
resultDirectory |
TestResults |
O diretório onde os resultados dos testes são colocados. Pode ser um caminho relativo (resolvido a partir do diretório de trabalho atual) ou um caminho absoluto. A --results-directory opção de linha de comandos tem prioridade. |
exitProcessOnUnhandledException |
false |
Quando definido para true, o processo anfitrião de testes termina imediatamente perante exceções não tratadas, em vez de permitir um encerramento normal. A TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variável ambiente (valores 1 ou 0) tem prioridade. |
Observação
Existem opções internas adicionais de plataforma para cenários avançados (como timeouts com canos nomeados para controladores anfitriões de teste). Estas opções destinam-se à 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 através da CLI
Funcionalidades de extensão como crash dump, hang dump, retry, relatórios TRX e cobertura de códigonão são configuráveis via testconfig.json. Estas funcionalidades são configuradas exclusivamente através de argumentos de linha de comandos.
Para uma referência completa das opções de linha de comandos, veja a referência às opções de CLI do MTP.
Configurações específicas do framework de teste
Os frameworks de teste podem definir as suas próprias secções de configuração no ficheirotestconfig.json . Consulte a documentação do seu framework de teste:
- MSTest: Configurar MSTest — testconfig.json
- xUnit.net v3: xUnit.net testconfig.json
- NUnit: Consulte a documentação do NUnit para obter as informações mais recentes sobre o suporte do Microsoft.Testing.Platform.
- TUnit: Consulte a documentação do TUnit para obter as informações mais recentes sobre o suporte para Microsoft.Testing.Platform.
Exemplo de testconfig.json
O exemplo seguinte mostra um ficheirotestconfig.json que configura as opções da plataforma e as definições do MSTest:
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"parallelism": {
"enabled": true,
"workers": 4,
"scope": "method"
},
"timeout": {
"test": 30000
},
"execution": {
"considerFixturesAsSpecialTests": true
}
}
}
Migração de .runsettings para testconfig.json
Se estiver a migrar de um ficheiro .runsettings, a tabela seguinte estabelece a correspondência entre definições comuns e os respetivos equivalentes ou alternativas em testconfig.json:
| definição de .runsettings | testconfig.json equivalente | Notes |
|---|---|---|
RunConfiguration/ResultsDirectory |
platformOptions.resultDirectory |
|
RunConfiguration/MaxCpuCount |
Sem equivalente | O paralelismo ao nível do processo é controlado pela opção dotnet test --max-parallel-test-modules ou pela opção MSBuild /m. |
MSTest/* |
mstest.* |
Veja Configurar MSTest — testconfig.json. |
xUnit/* |
xUnit.* |
Veja xUnit.net testconfig.json. |
LoggerRunSettings/Loggers |
Apenas CLI | Utilize --report-trx ou opções de CLI semelhantes. |
DataCollectionRunSettings (responsabilidade) |
Apenas CLI | Utilize as opções da CLI --crashdump e --hangdump. Consulte despejos de falha e bloqueio. |
DataCollectionRunSettings (cobertura) |
Apenas CLI | Utilize a opção de CLI --coverage. Consulte cobertura do código. |
TestRunParameters |
--test-parameter Interface de Linha de Comandos (CLI) |
Use --test-parameter key=value na linha de comandos. |
Variáveis de ambiente
As variáveis de ambiente podem ser usadas para fornecer algumas informações de configuração de tempo de execução.
Observação
As variáveis de ambiente têm precedência sobre as definições de configuração no arquivo testconfig.json.
TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION variável de ambiente
Quando definido como 1, o processo anfitrião de teste termina imediatamente quando ocorrem exceções não tratadas. Quando configurado para 0, a plataforma permite um encerramento normal. Esta configuração tem prioridade sobre a platformOptions:exitProcessOnUnhandledException configuração.
TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT variável de ambiente
Substitui o tempo limite predefinido (300 segundos) utilizado para ligações por canal nomeado entre o controlador do anfitrião de teste e o anfitrião de teste. O valor deve ser uma cadeia de caracteres compatível com TimeSpan.
TESTINGPLATFORM_UI_LANGUAGE variável de ambiente
A partir do MTP 1.5, esta variável de ambiente define a linguagem da plataforma para exibir mensagens e registos usando um valor local como en-us. Essa linguagem tem precedência sobre as linguagens Visual Studio e .NET SDK. Os valores suportados são os mesmos do Visual Studio. Para obter mais informações, consulte a seção sobre como alterar o idioma do instalador na documentação de instalação do Visual Studio.
TESTINGPLATFORM_DIAGNOSTIC variável de ambiente
Se definido como 1, habilita o log de diagnóstico.
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY variável de ambiente
Define o nível de verbosidade quando os diagnósticos estão ativados. Os valores disponíveis são Trace, Debug, Information, Warning, Errorou Critical.
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY variável de ambiente
O diretório de saída do registo de diagnóstico. Se não for especificado, o ficheiro é gerado no diretório predefinido TestResults .
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX variável de ambiente
O prefixo do nome do ficheiro de log. O valor padrão é "log_".
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE variável de ambiente
Força o registrador 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 torna mais lenta a execução do teste.
TESTINGPLATFORM_EXITCODE_IGNORE variável de ambiente
Uma lista separada por ponto e vírgula de códigos de saída a ignorar. Quando um código de saída é ignorado, o processo retorna 0 em vez disso. Por exemplo, TESTINGPLATFORM_EXITCODE_IGNORE=2;8 ignora falhas nos testes e cenários sem execução de testes.
Observação
As variáveis de ambiente relacionadas com o diagnóstico têm prioridade sobre os seus argumentos correspondentes --diagnostic-* na linha de comandos.