Berichte generieren mit 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

Reporter-kompatible JSON-Ausgabe mit Axe DevTools for Web für C# generieren

Not for use with personal data

Diese Integration erzeugt Ergebnisse in einem Format, das mit dem Axe DevTools Reporter kompatibel ist.

Reporter-kompatibles JSON erstellen

AxeSelenium.Analyze gibt ein Objekt in der richtigen Form für die Verwendung mit dem Axe DevTools Reporter zurück. Es kann problemlos über die JsonConvert.SerializeObject-Methode der JSON.NET JSON Konvertierungsbibliothek in einen JSON-String konvertiert werden.

Hier ist ein Beispiel, in dem wir eine Seite analysieren und die Ergebnisse in einer Datei speichern:

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

Den Bericht konfigurieren

Die Metadaten des Berichts werden über die ReportConfiguration-Klasse konfiguriert. Überprüfen Sie den Link, um die API zu sehen.

Sobald ein ReportConfiguration-Objekt im gewünschten Zustand ist, kann es auf zwei Arten auf einen Scan angewendet werden:

  1. Es kann auf einen einzelnen Scan angewendet werden, indem es an ein einzelnes AxeSelenium-Objekt über Konstruktorargumente gebunden wird.

    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. Es kann auf alle Scans angewendet werden, die nicht individuell überschrieben werden, indem eine Instanz von ReportConfiguration als Standard festgelegt wird.

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

Sie können die ReportConfiguration-Instanz, die derzeit als Standard dient, über den Aufruf von ReportConfiguration.GetDefault() erhalten.

Beispiel für Generierungscode

Axe DevTools bietet ein integriertes Tool, um Berichte automatisch für die Benutzeransicht oder den Export zu erstellen.

Das folgende Beispiel richtet eine globale Berichterstellungskonfiguration mit einer AxeReporting-Klasse ein, die eine CreateResultsOutput-Methode enthält, um eine gerenderte JSON-Datei mit den Berichtsergebnissen zu erstellen.

Nach Abschluss der Ausführung der CreateResultsOutput-Methode wird die LogResults-Methode anschließend ausgeführt, um die Axe DevTools Reporter-Binärdatei mit der axe-TestCaseName.json als Eingabe zu starten, um für jede JSON-Datei eine entsprechende benutzerlesbare HTML-Datei zu erstellen.

Es gibt drei verfügbare Formate für diese Berichte. HTML eignet sich am besten für die Benutzeransicht in lokalen Testumgebungen. Für CI-Umgebungen ist eine JUnit XML-Option verfügbar. Das letzte Format ist CSV, das den Export in zahlreiche andere Tools ermöglicht.

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

Siehe auch