Rédaction de tests pour axe DevTools for Web en C#
Comment écrire des tests efficaces pour l'accessibilité en utilisant axe DevTools for Web pour C#
Ce guide fournit des exemples de tests pour NUnit et MSTest. Tous les tests utilisent la classe AxeReporting
pour créer les résultats de rapport initiaux. Pour plus d'informations sur les classes de test axe DevTools, visitez la Référence API C#.
Un test de base par défaut
Le test suivant fait des appels axe.Analyze()
pour analyser la page, compare les résultats à l'assertion et crée une sortie de rapport initiale à l'aide de la AxeReporting
classe.
Syntaxe NUnit
[Test]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}
Syntaxe MSTest
[TestMethod]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}
Tester les états et les flux des pages
Ce cas de test fait des appels axe.Analyze()
pour analyser la page dans différents états ou différents flux de la page, compare les résultats à l'assertion et crée une sortie de rapport initiale :
Syntaxe NUnit
[Test]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults,"search-results-page");
Assert.That(searchResults.Findings.Violations.Count, Is.EqualTo(0));
}
Syntaxe MSTest
[TestMethod]
public void AccessibilityAnalyzeWithPageFlow()
{
var homeResults = axe.Analyze();
AxeReporting.CreateResultsOutput(homeResults, "home-page");
driver.FindElementByName("q").SendKeys("csun 2019 accepting new papers for presentations");
driver.FindElementById("go").Click();
var searchResults = axe.Analyze();
AxeReporting.CreateResultsOutput(searchResults, "search-results-page");
Assert.IsTrue(searchResults.Findings.Violations.Count == 0);
}
Tester uniquement avec des règles spécifiques
Ce test fait appel axe.Analyze()
à analyser la page avec des règles spécifiées :
Syntaxe NUnit
[Test]
public void AccessibilityAnalyzeWithSpecificRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specifc rules")).WithRules("heading-order", "link-name");
var results = axe.Analyze();
System.Console.WriteLine(results);
AxeReporting.CreateResultsOutput(results, "specific-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}
Tester avec des règles spécifiques désactivées
Ce test appelle axe.Analyze()
à analyser avec des règles spécifiques désactivées :
Syntaxe NUnit
[Test]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}
Syntaxe MSTest
[TestMethod]
public void AccessibilityAnalyzeWithDisabledRules()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("disabled rules")).DisablingRules("heading-order", "link-name");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "disabled-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}
Tester avec un ensemble de règles spécifique
Ce test effectue un appel axe.Analyze()
pour analyser la page avec un ensemble de règles spécifié, dans ce cas 508
:
Syntaxe NUnit
[Test]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}
Syntaxe MSTest
[TestMethod]
public void AccessibilityAnalyzeWith508Ruleset()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("specific ruleset")).WithRuleset("508");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "508-rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}
Testing a specific portion of the page (scoped test)
Le test suivant appelle axe.Analyze();
pour exclure le contenu associé à des tests de l'ID #header
et garantit que le contenu avec l'ID #homecontent
est testé :
Syntaxe NUnit
[Test]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}
Syntaxe MSTest
[TestMethod]
public void IncludingAndExcludingElements()
{
var axe = new AxeSelenium(driver, ReportConfiguration.GetDefault().UserAgent("chrome").UIState("excluding and including ruleset")).Excluding("#header").Including("#homecontent");
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "Including-Excluding rules");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}
Exemples téléchargeables
Téléchargez et exécutez les deux exemples axe DevTools C# NUnit et MSTest :
Reportez-vous aux README.md
fichiers dans les dossiers de packages téléchargés attestCSharpNUnit/attestCSharpExample
attestCSharpMSTest/attestMSTestExample
pour connaître les conditions préalables, les informations d'intégration, les cas de test inclus et la configuration des rapports dans chaque exemple de package.