Generando informes con C#
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:
-
Se puede aplicar a un solo escaneo vinculándolo a un solo objeto
AxeSelenium
a través de argumentos del constructorvar 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");
-
Se puede aplicar a todos los análisis que no se anulan individualmente, configurando una instancia de
ReportConfiguration
como predeterminadoReportConfiguration.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
- Cómo cargar resultados de accesibilidad JSON en axe Reports describe cómo cargar sus resultados en axe Reports.
- Cómo obtener una clave API de axe Reports indica cómo obtener una clave API para comenzar a utilizar axe Reports.
- Creación y filtrado de informes muestra cómo puede crear informes de accesibilidad en formato CSV, XML o HTML a partir de sus resultados de accesibilidad JSON. También puede filtrar su salida por severidad utilizando esta herramienta.
- Cómo se almacenan los resultados JSON en el disco describe las convenciones de nombres de archivos para los resultados de accesibilidad JSON.