Generazione di Report 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

Generazione di output JSON compatibile con il reporter di Axe DevTools for Web per C#

Not for use with personal data

Questa integrazione produce risultati in un formato compatibile con il reporter di Axe DevTools.

Creazione di JSON compatibile con il reporter

AxeSelenium.Analyze restituisce un oggetto nella forma corretta per essere utilizzato con il reporter di Axe DevTools. Può essere facilmente convertito in una stringa JSON tramite il metodo JsonConvert.SerializeObject del libreria di conversione JSON JSON.NET.

Ecco un esempio in cui analizziamo una pagina e salviamo i risultati in un file:

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

Configurazione del report

I metadati del report sono configurati tramite la classe ReportConfiguration. Controlla il link per visualizzare la sua API.

Una volta che un oggetto ReportConfiguration è nello stato desiderato, può essere applicato a una scansione in due modi:

  1. Può essere applicato a una singola scansione collegandolo a un singolo oggetto AxeSelenium tramite argomenti del costruttore

    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. Può essere applicato a tutte le scansioni che non sono singolarmente sovrascritte, impostando un'istanza di ReportConfiguration come predefinito

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

Puoi ottenere l'istanza ReportConfiguration attualmente in uso come predefinita chiamando ReportConfiguration.GetDefault().

Codice di esempio per la generazione

Axe DevTools offre uno strumento integrato per creare automaticamente report per la visualizzazione da parte degli utenti o per l'esportazione.

Il seguente esempio configura una configurazione di report globale con una classe AxeReporting contenente un metodo CreateResultsOutput per creare un file JSON renderizzato contenente i risultati del report.

Al termine dell'esecuzione del metodo CreateResultsOutput, il metodo LogResults si esegue successivamente per avviare il binary del Reporter di Axe DevTools usando il axe-TestCaseName.json come input per creare un file HTML leggibile dall'utente corrispondente a ciascun file JSON.

Ci sono tre formati disponibili per questi report. HTML funziona meglio per la visualizzazione da parte dell'utente in ambienti di test locali. Per gli ambienti CI, è disponibile un'opzione XML JUnit. L'ultimo formato è CSV, che consente l'esportazione verso numerosi altri strumenti.

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

Vedi Anche