Generación de 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

Generación de salida JSON compatible con reportes usando Axe DevTools para Web para C#

Not for use with personal data

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

Creación de JSON compatible con reportes

AxeSelenium.Analyze devuelve un objeto con la forma correcta para su uso con el reportero de Axe DevTools. Se puede convertir fácilmente en una cadena JSON mediante el método JsonConvert.SerializeObject de la biblioteca de conversión JSON JSON.NET.

Aquí hay un ejemplo donde 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);

Configuración del informe

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

Una vez que un objeto ReportConfiguration 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 único objeto AxeSelenium vía 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 escaneos que no estén individualmente sobrescritos, estableciendo una instancia de ReportConfiguration como predeterminada

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

Puedes obtener la instancia de ReportConfiguration 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 visualización por parte del usuario o para exportación.

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

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

Hay tres formatos disponibles para estos informes. HTML funciona mejor para visualización por parte del usuario en entornos de prueba locales. Para entornos de CI, hay una opción XML JUnit disponible. El formato final es CSV, que permite la exportación a numerosas 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();
        }
  }
}

Ver también