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.
Cada opção de relatório requer o pacote de extensão nomeado em sua seção. Adicione o pacote diretamente ou use uma configuração ou perfil do SDK de teste que o inclua. As extensões de relatório não fazem parte do núcleo mtp, portanto, uma opção como --report-trx não é reconhecida quando o aplicativo de teste não registra sua extensão. Execute o aplicativo de teste com --help, ou execute dotnet test --help no modo MTP, para confirmar se uma opção está disponível.
Dica
Ao usar o Microsoft.Testing.Platform.MSBuild (incluído transitivamente por MSTest, NUnit e xUnit runners), essas extensões são registradas automaticamente quando você instala seus pacotes NuGet , sem necessidade de alterações de código. O registro manual especificado neste artigo só será necessário se você desabilitar o ponto de entrada gerado automaticamente definindo <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>.
Nomes dos arquivos de relatório
Cada extensão de relatório grava seu arquivo no diretório de resultados do teste, que você pode definir com a opção --results-directory . Para substituir o nome, use a opção correspondente --report-*-filename . Cada seção de relatório lista o nome padrão desse relatório.
Um nome de arquivo pode incluir um caminho relativo que permanece dentro do diretório de resultados do teste e pode usar os seguintes itens de substituição (espaços reservados):
| Espaço reservado | DESCRIÇÃO |
|---|---|
{asm} |
Nome do assembly de entrada ou unknown quando não estiver disponível. |
{tfm} |
Monitor da estrutura de destino detectada em tempo de execução, como net9.0. |
{arch} |
Arquitetura de processo, como x64, x86ou arm64. |
{pname} |
Nome do processo. |
{pid} |
ID do processo. |
{time} |
Carimbo de data e hora de alta precisão. |
Por exemplo, --report-trx-filename "{asm}_{tfm}_{arch}.trx" reproduz o nome TRX padrão.
Observação
Os nomes de espaço reservado diferenciam maiúsculas de minúsculas e usam letras minúsculas. O suporte a espaços reservados para nomes de arquivos de relatório está disponível no MTP a partir da versão 2.3.0.
Consolidação de relatório
A partir do MTP 2.4.0, o MTP faz automaticamente o pós-processamento dos artefatos do relatório após a execução de uma invocação de dotnet test que executa vários módulos de teste ou depois que o suporte a novas tentativas executa várias tentativas. O recurso é experimental no MTP 2.4.0.
As extensões TRX, JUnit, CTRF e HTML agrupam artefatos compatíveis por tipo de relatório e geram um relatório consolidado no subdiretório merged do diretório de resultados de teste. A consolidação do CTRF combina os resultados dos módulos e consolida as tentativas de nova execução no resultado final do teste, com o histórico dessas tentativas. A consolidação em HTML cria um resumo consolidado e preserva os relatórios originais de cada processo.
Para extensões de relatório personalizadas, a API experimental IArtifactPostProcessor expõe modos separados TestModules e RetryAttempts de processamento. Para obter mais informações, consulte As IArtifactPostProcessor extensões.
Visual Studio relatórios de teste (TRX)
O Visual Studio arquivo de resultado de teste (ou TRX) é o formato padrão para publicar resultados de teste. Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.TrxReport .
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddTrxReportProvider();
Observação
Ao usar o registro manual, registre o provedor de relatório TRX por último. A implementação atual depende da ordem de registro, portanto, registrá-la após todas as outras extensões garante que ela capture todos os dados de teste.
Observação
Disponível no MTP a partir da versão 1.9.0, o relatório TRX inclui o campo de teste Description .
Observação
Disponível no MTP a partir da versão 2.3.0, os resultados do TRX são transmitidos para o disco à medida que a execução progride. Se o host de teste falhar, o arquivo TRX manterá os resultados coletados antes da falha.
Opções
| Opção | DESCRIÇÃO |
|---|---|
--report-trx |
Gera o relatório TRX. |
--report-trx-filename |
O nome do relatório TRX gerado. A partir do MTP 2.3.0, o padrão é a forma determinística {asm}_{tfm}_{arch}.trx ; antes do MTP 2.3.0, o padrão era <UserName>_<MachineName>_<yyyy-MM-dd_HH_mm_ss.fffffff>.trx. Para personalizar o nome, consulte nomes de arquivo de relatório. |
O relatório é salvo dentro da pasta TestResults padrão que pode ser especificada por meio do argumento de --results-directory linha de comando.
Relatórios HTML
O relatório HTML cria um arquivo HTML interativo e autocontido para uma sessão de teste. Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.HtmlReport.
Observação
Disponível no MTP a partir da versão 2.3.0. Essa extensão é experimental e suas opções e formato de saída podem mudar em uma versão futura.
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddHtmlReportProvider();
Opções
| Opção | DESCRIÇÃO |
|---|---|
--report-html |
Gera o relatório HTML. |
--report-html-filename |
O nome do relatório HTML gerado. O valor deve terminar com .html. O padrão é {asm}_{tfm}_{arch}.html. Para personalizar o nome, consulte nomes de arquivo de relatório. Requer --report-html. |
Relatórios JUnit
O relatório JUnit cria um arquivo XML compatível com JUnit para uma sessão de teste. Esta extensão requer o pacote NuGet Microsoft.Testing.Extensions.JUnitReport.
Observação
Disponível no MTP a partir da versão 2.3.0. Essa extensão é experimental e suas opções e formato de saída podem mudar em uma versão futura.
A partir do MSTest.Sdk 4.3, habilite essa extensão com <EnableMicrosoftTestingExtensionsJUnitReport>true</EnableMicrosoftTestingExtensionsJUnitReport>. A extensão não faz parte dos perfis Default ou AllMicrosoft do MSTest.Sdk.
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddJUnitReportProvider();
Opções
| Opção | DESCRIÇÃO |
|---|---|
--report-junit |
Gera o relatório XML do JUnit. |
--report-junit-filename |
O nome do relatório JUnit XML gerado. O valor deve terminar com .xml. O padrão é {asm}_{tfm}_{arch}.xml. Para personalizar o nome, consulte nomes de arquivo de relatório. Requer --report-junit. |
Relatórios CTRF
O relatório CTRF cria um arquivo JSON que usa o Formato de Relatório de Teste Comum para uma sessão de teste. Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.CtrfReport.
Observação
Disponível no MTP a partir da versão 2.3.0. Essa extensão é experimental e suas opções e formato de saída podem mudar em uma versão futura.
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddCtrfReportProvider();
Opções
| Opção | DESCRIÇÃO |
|---|---|
--report-ctrf |
Gera o relatório JSON CTRF. |
--report-ctrf-filename |
O nome do relatório JSON CTRF gerado. O valor deve terminar com .json. O padrão é <UserName>_<MachineName>_<assembly>_<tfm>_<timestamp>.ctrf.json. Para personalizar o nome, consulte nomes de arquivo de relatório. Requer --report-ctrf. |
A partir do MSTest 4.4, os resultados do CTRF para testes repetidos incluem os campos retries e retryAttempts. Quando um teste é aprovado após uma tentativa com falha anterior, seu resultado também inclui flaky: true. O resumo do terminal identifica testes instáveis e testes executados novamente. Os relatórios TRX e JUnit mantêm um resultado final por teste em vez de gravar todas as tentativas.
relatórios Azure DevOps
O plug-in de relatório do Azure DevOps aprimora a execução de testes para desenvolvedores que hospedam seu código no GitHub, mas realizam builds em agentes de build do Azure DevOps. Isso adiciona informações extras às falhas para exibi-las diretamente na PR do GitHub.
Anotação de erro na visualização de arquivos de PR do GitHub
Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.AzureDevOpsReport .
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddAzureDevOpsProvider();
Opções
| Opção | Versão do MTP | DESCRIÇÃO |
|---|---|---|
--report-azdo |
1.9.0 | Habilita o gerador de relatório Azure DevOps. Erros e avisos são gravados na saída em um formato que Azure DevOps entende. |
--report-azdo-severity |
1.9.0 | Gravidade a ser usada para eventos relatados. Os valores válidos são error (padrão) e warning. |
--report-azdo-groups |
2.4.0 | Habilita ou desabilita grupos de logs por assembly. Quando habilitada, a saída de cada assembly de teste aparece em uma seção recolhível do log de Azure Pipelines. Os valores válidos são on e off. As compilações de prévia do MTP 2.4.0 usam on por padrão; a versão estável do MTP 2.4.0 usa off por padrão. Requer --report-azdo. |
--report-azdo-annotations |
2.4.0 | Habilita ou desabilita anotações para testes com falha e ignorados. Os valores válidos são on (padrão) e off. Requer --report-azdo. |
--report-azdo-flaky-history |
2.3.0 | Consulta o histórico de resultados de testes do Azure DevOps dos últimos N dias (1 a 90) e anota as falhas relatadas com o contexto de instabilidade. Requer --report-azdo. |
--report-azdo-demote-known-flaky |
2.3.0 | Rebaixa as falhas que são suficientemente instáveis na janela de histórico do Azure DevOps (o limite padrão é 25%) de erros para avisos. Requer --report-azdo e --report-azdo-flaky-history. |
--report-azdo-quarantine-file |
2.3.0 | Caminho para um arquivo de texto que lista os nomes totalmente qualificados ou padrões glob dos testes em quarentena. As falhas correspondentes são relatadas como avisos. Requer --report-azdo. |
--report-azdo-summary |
2.3.0 | Grava um resumo da tarefa em Markdown no final da execução do teste e faz o upload por meio de ##vso[task.uploadsummary]. Um argumento de caminho de arquivo opcional substitui o local padrão ({testResultsDir}/azdo-summary-{tfm}.md). Requer --report-azdo. |
--report-azdo-stackframe-filter |
2.3.0 | Adiciona padrões de expressão regular, comparados com o prefixo de tipo totalmente qualificado de cada quadro de pilha, que são ignorados quando a extensão localiza o ponto de chamada do usuário para anotação. A opção é repetível, até 16 padrões e cada padrão é compilado com um tempo limite de correspondência de 500 ms. Esses padrões somam-se aos prefixos integrados da extensão para implementação de asserções do MSTest. Requer --report-azdo. |
--report-azdo-upload-artifacts |
2.3.0 | Envia arquivos de resultados de teste e/ou adiciona tags de build ao Azure DevOps. Os valores válidos são off (padrão), tags-onlye filesall. |
--report-azdo-upload-artifact-include |
2.3.0 | Inclui arquivos no upload de artefatos do Azure DevOps usando padrões glob relativos ao diretório de resultados de teste. Usa **/* como padrão. Requer --report-azdo-upload-artifacts ser um valor diferente de off. |
--report-azdo-upload-artifact-exclude |
2.3.0 | Exclui arquivos do upload de artefatos do Azure DevOps usando padrões glob relativos ao diretório de resultados de teste. Requer --report-azdo-upload-artifacts ser um valor diferente de off. |
--report-azdo-upload-artifact-name |
2.3.0 | Substitui o nome do contêiner de artefatos do Azure DevOps. Usa TestResults_{assemblyName}_{tfm} como padrão. Requer --report-azdo-upload-artifacts ser um valor diferente de off. |
--publish-azdo-test-results |
2.3.0 | Publica os resultados do teste ao vivo na guia Azure DevOps Tests. |
--publish-azdo-run-name |
2.3.0 | Define um nome de execução de teste de Azure DevOps personalizado para publicação de resultado de teste ao vivo. Requer --publish-azdo-test-results. |
Warning
Não habilite grupos quando vários conjuntos de testes são executados em paralelo. Azure DevOps ##[group] e ##[endgroup] comandos de formatação são sequenciais e anônimos. A saída simultânea do assembly pode intercalar, causar aninhamento de grupo incorreto e colocar linhas sob o assembly errado. Se você usar uma versão prévia do MTP 2.4.0, passe --report-azdo-groups off para desabilitar grupos. A versão estável do MTP 2.4.0 desabilita os grupos por padrão. Passe --report-azdo-groups on apenas para uma única montagem ou para a execução serializada de uma montagem.
Observação
A coluna Versão MTP lista a primeira versão do MTP que contém cada opção. A própria extensão do Azure DevOps tornou-se estável no MTP 1.9.0 com --report-azdo e --report-azdo-severity; as opções restantes foram adicionadas no MTP 2.3.0 ou 2.4.0.
A extensão detecta automaticamente que está em execução no ambiente de CI (integração contínua) verificando a variável de TF_BUILD ambiente.
A partir do MTP 2.4.0, os resumos em Markdown do Azure DevOps agregam resultados de todos os módulos de teste em uma invocação de dotnet test. Quando você também habilita a cobertura de código, o resumo inclui contagens cobertas e totais, percentuais, resultados de limite e um indicador quando os dados de cobertura são parciais.
relatórios do GitHub Actions
O relatório do GitHub Actions emite comandos de fluxo de trabalho nativos do GitHub Actions para que as execuções de teste produzam uma experiência de primeira classe no executor: grupos de logs por assembly, anotações de testes com falha e ignorados (exibidas na guia Anotações do fluxo de trabalho e, quando a localização de origem pode ser resolvida, na diferença de Arquivos alterados da solicitação de pull), um resumo de trabalho em Markdown acrescentado ao arquivo referenciado por GITHUB_STEP_SUMMARY, além de avisos de testes lentos.
Essa extensão requer o pacote NuGet Microsoft.Testing.Extensions.GitHubActionsReport.
A extensão é ativada somente quando a execução ocorre no GitHub Actions (a variável de ambiente GITHUB_ACTIONS é true) e a opção --report-gh está definida; caso contrário, não faz nada. Quando ativo, cada recurso é habilitado por padrão e pode ser desativado individualmente com sua --report-gh-* opção.
Importante
A opção --report-gh pertence a Microsoft.Testing.Extensions.GitHubActionsReport. O pacote GitHubActionsTestLogger fornece uma opção diferente. --report-github As opções não são aliases e funcionam somente quando o projeto de teste registra o pacote que possui a opção.
Observação
A extensão está disponível a partir do MTP 2.3.0. A partir do MTP 2.4.0, seus pontos de entrada públicos não são mais experimentais.
Registro manual
var builder = await TestApplication.CreateBuilderAsync(args);
builder.AddGitHubActionsProvider();
Opções
| Opção | Versão do MTP | DESCRIÇÃO |
|---|---|---|
--report-gh |
2.3.0 | Habilita o gerador de relatório GitHub Actions para que as execuções de teste emitam comandos de fluxo de trabalho. Requer que a execução esteja em GitHub Actions. |
--report-gh-groups |
2.3.0 | Habilita ou desabilita grupos de logs por assembly. Os valores válidos são on (padrão) e off. Requer --report-gh. |
--report-gh-annotations |
2.3.0 | Habilita ou desabilita anotações para testes com falha e ignorados. Os valores válidos são on (padrão) e off. Requer --report-gh. |
--report-gh-step-summary |
2.3.0 | Controla se a extensão grava um resumo em Markdown da tarefa no arquivo referenciado por GITHUB_STEP_SUMMARY. Os valores válidos são on (padrão) offe, a partir do MTP 2.4.0, on-failure. Requer --report-gh. |
--report-gh-step-summary-sections |
2.4.0 | Seleciona o conteúdo de resumo. Os valores válidos são test-results, slow-testse coverageall (padrão). Requer --report-gh e um modo de resumo diferente de off. |
--report-gh-slow-test-notices |
2.3.0 | Habilita ou desabilita avisos de teste lento. Os valores válidos são on (padrão) e off. Requer --report-gh. |
--report-gh-slow-test-threshold |
2.3.0 | A duração em que um teste pode ser executado antes de um aviso de teste lento ser emitido. Aceita um número nu de segundos ou um valor com um sufixo de unidade, como 90s, 2mou 1.5h. O padrão é 60s. Requer --report-gh. |
A partir do MTP 2.4.0, os resumos em Markdown do GitHub Actions agregam os resultados de todos os módulos de teste em uma invocação de dotnet test. Se você também habilitar a cobertura de código, selecione coverage ou all para incluir contagens de itens cobertos e totais, porcentagens, resultados dos limites e um indicador quando os dados de cobertura forem parciais.