Relatórios de teste

Esses recursos exigem a instalação de pacotes NuGet adicionais, conforme descrito em cada seção.

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} Identificador do framework de destino detectado 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 dos marcadores fazem distinção entre maiúsculas e minúsculas e usam letras minúsculas. O suporte de espaço reservado para nomes de arquivo de relatório está disponível no MTP a partir da versão 2.3.0.

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.

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.

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 Severidade a ser usada para eventos reportados. Os valores válidos são error (padrão) e warning.
--report-azdo-flaky-history 2.3.0 Consulta o histórico de resultados de teste do Azure DevOps dos últimos N dias (1 a 90) e anota as falhas relatadas com contexto de instabilidade. Requer --report-azdo.
--report-azdo-demote-known-flaky 2.3.0 Rebaixa falhas que são bastante irregulares na janela de histórico de Azure DevOps (o limite padrão é 25%) de erros a avisos. Requer --report-azdo e --report-azdo-flaky-history.
--report-azdo-quarantine-file 2.3.0 Caminho para um arquivo de texto que lista nomes totalmente qualificados de teste em quarentena ou padrões glob. 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 regex, correspondentes ao prefixo de tipo totalmente qualificado de cada quadro de pilha, que são ignorados quando a extensão localiza o site de chamadas do usuário para anotar. 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.

Observação

A coluna de versão MTP lista a versão MTP na qual cada opção ficou disponível pela primeira vez em um build estável. A própria extensão do Azure DevOps se tornou 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.

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.

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 testes proporcionem uma experiência de alto nível no executor: grupos de logs por assembly, anotações de testes com falha e pulados (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, e avisos sobre testes lentos.

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.

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.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 log por assembly. Os valores válidos são on (padrão) e off. Requer --report-gh.
--report-gh-annotations 2.3.0 Habilita ou desativa 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 Ativa ou desativa a escrita de um resumo de trabalho em Markdown no arquivo referenciado por GITHUB_STEP_SUMMARY. Os valores válidos são on (padrão) e off. Requer --report-gh.
--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.