Gerando Relatórios com C#

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Gerando saída JSON compatível com repórteres usando Axe DevTools para Web em C#

Not for use with personal data

Esta integração produz resultados em um formato compatível com o repórter Axe DevTools.

Criando JSON compatível com repórter

AxeSelenium.Analyze retorna um objeto no formato adequado para uso com o repórter Axe DevTools. Ele pode ser facilmente convertido em uma string JSON através do método JsonConvert.SerializeObject do biblioteca de conversão JSON JSON.NET.

Aqui está um exemplo onde analisamos uma página e salvamos os resultados em um arquivo:

var axe = new AxeSelenium(driver);
var results = axe.Analyze();
var jsonResults = JsonConvert.SerializeObject(results, Formatting.Indented);
File.WriteAllText("myResults.json", jsonResults);

Configurando o relatório

Os metadados do relatório são configurados via a classe ReportConfiguration. Confira o link para ver sua API.

Uma vez que um objeto ReportConfiguration está no estado desejado, ele pode ser aplicado a uma varredura de duas maneiras:

  1. Ele pode ser aplicado a uma única varredura ligando-o a um único objeto AxeSelenium via argumentos do construtor

    var reportConfig = ReportConfiguration.GetDefault().TestSuiteName("my suite").UIState("some state");
    var axe = new AxeSelenium(driver, reportConfig);
    var results = axe.Analyze();
    
    Debug.Assert(results.Name == "my suite");
    Debug.Assert(results.Id = "some state");
  2. Ele pode ser aplicado a todas as varreduras que não são individualmente sobrepostas, configurando uma instância de ReportConfiguration como padrão

    ReportConfiguration.GetDefault().TestSuiteName("my suite").SetAsDefault()
    
    var axe = new AxeSelenium(driver);
    var results = axe.Analyze();
    
    Debug.Assert(results.Name == "my suite");

Você pode obter a instância de ReportConfiguration atualmente servindo como padrão chamando ReportConfiguration.GetDefault().

Exemplo de código de geração

O Axe DevTools oferece uma ferramenta integrada para criar automaticamente relatórios para visualização do usuário ou para exportação.

O exemplo a seguir configura uma configuração de relatório global com uma classe AxeReporting contendo um método CreateResultsOutput para criar um arquivo JSON renderizado contendo os resultados do relatório.

Após a execução do método CreateResultsOutput, o método LogResults é executado em seguida para lançar o binário do Axe DevTools Reporter usando o axe-TestCaseName.json como entrada para criar um arquivo HTML correspondente legível pelo usuário para cada arquivo JSON.

Existem três formatos disponíveis para esses relatórios. O HTML funciona melhor para a visualização do usuário em ambientes de teste locais. Para ambientes de CI, uma opção JUnit XML está disponível. O formato final é CSV, que permite a exportação para várias outras ferramentas.

using System.IO;
using Newtonsoft.Json;
using System.Diagnostics;
using Deque.AxeDevtools.Selenium.Results;

namespace test
{
  public class AxeReporting
  {
    public static void CreateResultsOutput(ReportResults results, string TestCaseName)
    {
        var jsonResults = JsonConvert.SerializeObject(results, Formatting.Indented);
        File.WriteAllText("../../../reports/axe-" + TestCaseName + ".json", jsonResults);
    }

    public static void LogResults()
        {
             ProcessStartInfo startInfo = new ProcessStartInfo() { FileName = "../../../resources/repoter-cli-win.exe", Arguments = "../../../reports ../../../reports/a11y-reports --format html", };
             Process proc = new Process() { StartInfo = startInfo, };
             proc.Start();
        }
  }
}

Veja Também