Scrittura di test per axe DevTools per Web in 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

Come scrivere test efficaci per l'accessibilità utilizzando axe DevTools per Web per C#

Not for use with personal data

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.