Génération de Rapports avec 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

Génération de sortie JSON compatible avec le reporter avec Axe DevTools pour le Web en C#

Not for use with personal data

Cette intégration produit des résultats dans un format compatible avec le Reporter Axe DevTools.

Création de JSON compatible avec le reporter

AxeSelenium.Analyze retourne un objet dans la forme appropriée pour une utilisation avec le reporter Axe DevTools. Il peut être facilement converti en chaîne JSON via la méthode JsonConvert.SerializeObject du bibliothèque de conversion JSON JSON.NET.

Voici un exemple où nous analysons une page et enregistrons les résultats dans un fichier :

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

Configuration du rapport

Les métadonnées du rapport sont configurées via la classe ReportConfiguration. Consultez le lien pour voir son API.

Une fois qu'un objet ReportConfiguration se trouve dans l'état désiré, il peut être appliqué à une analyse de deux manières :

  1. Il peut être appliqué à une analyse unique en le liant à un seul objet AxeSelenium via arguments du constructeur

    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. Il peut être appliqué à toutes les analyses qui ne sont pas individuellement redéfinies, en définissant une instance de ReportConfiguration par défaut

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

Vous pouvez obtenir l'instance ReportConfiguration actuellement utilisée par défaut en appelant ReportConfiguration.GetDefault().

Exemple de code de génération

Axe DevTools offre un outil intégré pour créer automatiquement des rapports à l'intention des utilisateurs ou pour l'exportation.

L'exemple suivant configure une configuration de rapport globale avec une classe AxeReporting contenant une méthode CreateResultsOutput pour créer un fichier JSON rendu contenant les résultats du rapport.

Une fois l'exécution de la méthode CreateResultsOutput terminée, la méthode LogResults s'exécute après pour lancer le binaire Axe DevTools Reporter en utilisant le axe-TestCaseName.json comme entrée pour créer un fichier HTML lisible par l'utilisateur correspondant à chaque fichier JSON.

Il existe trois formats disponibles pour ces rapports. HTML est le mieux adapté à une visualisation par les utilisateurs dans des environnements de test locaux. Pour les environnements CI, une option XML JUnit est disponible. Le format final est CSV, ce qui permet l'exportation vers de nombreux autres outils.

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

Voir aussi