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.
Este artigo contém orientações para resolução de problemas para Microsoft.Testing.Platform.
Códigos de saída
Microsoft.Testing.Platform utiliza códigos de saída conhecidos para comunicar falhas de teste ou erros da aplicação. Os códigos de saída começam em 0 e são não negativos.
| Código de saída | Detalhes |
|---|---|
0 |
O 0 código de saída indica sucesso. Todos os testes escolhidos para executar foram concluídos e não houve erros. |
1 |
O 1 código de saída indica erros desconhecidos e funciona como um recurso genérico. Para encontrar informações adicionais sobre erros e detalhes, consulte o resultado. |
2 |
Um código de saída de 2 é usado para indicar que houve pelo menos uma falha no teste. |
3 |
O código 3 de saída indica que a sessão de teste foi abortada. Uma sessão pode ser abortada usando Ctrl+C, por exemplo. |
4 |
O código 4 de saída indica que a configuração das extensões usadas é inválida e que a sessão de testes não pode ser executada. |
5 |
O código 5 de saída indica que os argumentos da linha de comandos passados para a aplicação de teste eram inválidos. |
6 (já não é utilizado) |
O código 6 de saída já não é produzido pela plataforma; anteriormente indicava que a sessão de teste estava a usar uma funcionalidade não implementada. |
7 |
O código 7 de saída indica que uma sessão de teste não conseguiu ser concluída com sucesso e provavelmente crashou. É possível que isto tenha sido causado por uma sessão de teste executada através do ponto de extensão de um controlador de teste. |
8 |
O código 8 de saída indica que a sessão de teste não executou nenhum teste. |
9 |
O código 9 de saída indica que a política mínima de execução para os testes executados foi violada. |
10 |
O código 10 de saída indica que o adaptador de teste, Testing.Platform Test Framework, MSTest, NUnit ou xUnit, falhou em executar testes por uma razão de infraestrutura não relacionada com o próprio teste. Um exemplo é falhar em criar uma luminária necessária para os testes. |
11 |
O código de saída 11 indica que o processo de teste sairá se o processo dependente sair. |
12 |
O código 12 de saída indica que a sessão de teste não pôde ser executada porque o cliente não suporta nenhuma das versões suportadas do protocolo. |
13 |
O código 13 de saída indica que a sessão de teste foi interrompida devido ao atingir o número máximo especificado de testes falhados usando --maximum-failed-tests a opção de linha de comandos. Para mais informações, consulte a secção Opções na referência de opções da CLI do Microsoft.Testing.Platform |
Para permitir registos verbosos e resolução de problemas, veja Registo de diagnóstico.
Ignore códigos de saída específicos
Microsoft.Testing.Platform é concebido para ser rigoroso por defeito, mas permite a configurabilidade. Assim, é possível que os utilizadores decidam quais os códigos de saída que devem ser ignorados (um código de saída de 0 será devolvido em vez do código de saída original).
Para ignorar códigos de saída específicos, use a --ignore-exit-code opção de linha de comandos ou a TESTINGPLATFORM_EXITCODE_IGNORE variável de ambiente. O formato válido aceite é uma lista separada por ponto e vírgula de códigos de saída a ignorar (por exemplo, --ignore-exit-code 2;3;8). Um cenário comum é considerar que falhas de teste não devem resultar num código de saída não nulo (o que corresponde a ignorar o código 2de saída).
Registo de diagnóstico
A plataforma disponibiliza registos de diagnóstico incorporados para ajudar a resolver problemas na execução de testes. Pode ativar o registo de diagnóstico através de opções de linha de comandos ou variáveis de ambiente.
Opções da linha de comandos
As seguintes opções de plataforma fornecem as informações úteis para solucionar problemas das suas aplicações de teste:
--info--diagnostic--diagnostic-synchronous-write--diagnostic-verbosity--diagnostic-file-prefix--diagnostic-output-directory
Variáveis de ambiente
Também pode ativar os registos de diagnóstico usando as variáveis de ambiente:
| Nome da variável de ambiente | Description |
|---|---|
TESTINGPLATFORM_DIAGNOSTIC |
Se definido como 1, habilita o log de diagnóstico. |
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY |
Define o nível de verbosidade. Os valores disponíveis são Trace, Debug, Information, Warning, Errorou Critical. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY |
O diretório de saída do log de diagnóstico, se não for especificado, o arquivo é gerado no diretório TestResults padrão. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX |
O prefixo do nome do ficheiro de log. O padrão é "log_". |
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE |
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. |
Observação
As variáveis de ambiente têm precedência sobre os argumentos de linha de comando.
Resolver erros de configuração
Microsoft.Testing.Platform.MSBuild
Seguem-se os erros de configuração comuns relacionados com o Microsoft.Testing.Platform.MSBuild.
erro CS8892: Método 'TestingPlatformEntryPoint.Main(string[])' não será usado como um ponto de entrada porque um ponto de entrada síncrono 'Program.Main(string[])' foi encontrado
Definir manualmente um ponto de entrada (Main) em um projeto de teste ou referenciar um projeto de teste de um aplicativo que já tem um ponto de entrada resulta em um conflito com o ponto de entrada gerado por Microsoft.Testing.Platform. Para evitar esse problema, execute uma destas etapas:
Remova seu ponto de entrada definido manualmente, normalmente
Mainmétodo em Program.cs, e deixe a plataforma de teste gerar um para você.Desative a geração do ponto de entrada ao definir a propriedade MSBuild
<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.Desative completamente a dependência transitiva para
Microsoft.Testing.Platform.MSBuilddefinindo a propriedade<IsTestingPlatformApplication>false</IsTestingPlatformApplication>MSBuild no projeto que faz referência a um projeto de teste. Isso é necessário quando você faz referência a um projeto de teste de um projeto que não é de teste, por exemplo, um aplicativo de console que faz referência a um aplicativo de teste.
Microsoft.Testing.Extensions.Fakes
Erro do Fakes Falha ao resolver o caminho do profiler a partir das variáveis de ambiente COR_PROFILER_PATH e COR_PROFILER
Este erro pode ocorrer se nem todos os assemblies Fakes estiverem presentes na pasta bin.
- Certifique-se de que o projeto usa o MSTest.SDK ou faz referência Microsoft.Testing.Extensions.Fakes .
- Para projetos .NET Framework, evite definir
<PlatformTarget>AnyCPU</PlatformTarget>pois isso faz com que o NuGet não copie todos os ficheiros para a pasta bin.