Generando informes con 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
Not for use with personal data

Esta integración produce resultados en un formato compatible con el generador de informes de Axe DevTools.

Creación de JSON compatible con informes

AxeSelenium.Analyze devuelve un Objeto en la forma correcta para usar con el generador de informes de axe DevTools. Puede ser fácilmente implementado Convertido a una cadena JSON a través del método JsonConvert.SerializeObject del Biblioteca de conversión JSON JSON.NET.

A continuación se muestra un ejemplo en el que analizamos una página y guardamos los resultados en un archivo:

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

Configurando el informe

Los metadatos del informe se configuran a través de ReportConfiguration clase. Consulte el enlace para ver su API.

Una vez un ReportConfiguration Si el objeto está en el estado deseado, se puede aplicar a un escaneo de dos maneras:

  1. Se puede aplicar a un solo escaneo vinculándolo a un solo objeto AxeSelenium a través de argumentos del constructor

    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. Se puede aplicar a todos los análisis que no se anulan individualmente, configurando una instancia de ReportConfiguration como predeterminado

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

Puede obtener el ReportConfiguration Instancia que actualmente sirve como predeterminada llamando a ReportConfiguration.GetDefault().

Código de generación de ejemplo

Axe DevTools ofrece una herramienta incorporada para crear automáticamente informes para que los vea el usuario o para exportar.

El siguiente ejemplo configura una configuración de informes globales con una AxeReporting clase que contiene un CreateResultsOutput método para crear un archivo representado JSON que contiene los resultados del informe.

Al completar la ejecución del CreateResultsOutput método, el LogResults método se ejecuta después para iniciar el binario axe DevTools Reporter utilizando el axe-TestCaseName.json como entrada para crear un archivo HTML legible por el usuario correspondiente para cada JSON archivo.

Hay tres formatos disponibles para estos informes. HTML funciona mejor para la visualización del usuario en entornos de prueba locales. Para entornos CI, está disponible una opción JUnit XML. El formato final es CSV, que permite la exportación a muchas otras herramientas.

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();
        }
  }
}

Consulte también