Scrittura di test per axe DevTools per Web in C#
Come scrivere test efficaci per l'accessibilità utilizzando axe DevTools per Web per C#
Questa guida fornisce test di esempio sia per NUnit che per MSTest. Tutti i test utilizzano la AxeReporting classe per creare i risultati del reporting iniziali. Per ulteriori informazioni sulle classi di test di axe DevTools, visitare C# API Reference.
Un test predefinito di base
Il seguente test chiama axe.Analyze() per analizzare la pagina, confronta i risultati con l'affermazione e crea un output di report iniziale utilizzando la classe AxeReporting .
Sintassi NUnit
[Test]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}Sintassi MSTest
[TestMethod]
public void AccessibilityAnalyzeAsync()
{
var results = axe.Analyze();
AxeReporting.CreateResultsOutput(results, "basic analyze");
Assert.IsTrue(results.Findings.Violations.Count == 0);
}Test degli stati e dei flussi delle pagine
Questo caso di test chiama axe.Analyze() per scansionare la pagina in diversi stati o diversi flussi della pagina, confronta i risultati con l'affermazione e crea un output di report iniziale:
Sintassi 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));
}Sintassi 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);
}Test solo con regole specifiche
Questo test chiama axe.Analyze() per scansionare la pagina con le regole specificate:
Sintassi 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));
}Test con regole specifiche disabilitate
Questo test richiede di eseguire la scansione con regole specifiche disabilitate: axe.Analyze()
Sintassi 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));
}Sintassi 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);
}Test con un set di regole specifico
Questo test invoca axe.Analyze() per scansionare la pagina con un set di regole specificato, in questo caso 508:
Sintassi 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));
}Sintassi 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)
Il seguente test richiede axe.Analyze(); di escludere il contenuto associato all' #header ID dal test e garantisce che il contenuto con l' #homecontent ID venga testato:
Sintassi 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));
}Sintassi 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);
}Esempi scaricabili
Scarica ed esegui entrambi gli esempi di axe DevTools C# NUnit e MSTest:
Fare riferimento ai README.md file presenti nelle cartelle del pacchetto scaricato attestCSharpNUnit/attestCSharpExample e del pacchetto attestCSharpMSTest/attestMSTestExample per i prerequisiti, le informazioni sull'integrazione, i casi di test inclusi e la configurazione dei report in ciascun pacchetto di esempio.
