Escribiendo pruebas para axe DevTools for Web en 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

Cómo escribir pruebas efectivas de accesibilidad con axe DevTools for Web para C#

Not for use with personal data

Esta guía proporciona pruebas de ejemplo para NUnit y MSTest. Todas las pruebas utilizan la clase AxeReporting para crear resultados de informes iniciales. Para obtener más información sobre las clases de prueba de axe DevTools, visita la Referencia de API de C#.

Una prueba básica predeterminada

La siguiente prueba llama axe.Analyze() para analizar la página, compara los resultados con la aserción y crea una salida de informe inicial utilizando la clase AxeReporting .

Sintaxis de NUnit

[Test]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.That(results.Findings.Violations.Count, Is.EqualTo(0));
}

Sintaxis de MSTest

[TestMethod]
public void AccessibilityAnalyzeAsync()
{
  var results = axe.Analyze();

  AxeReporting.CreateResultsOutput(results, "basic analyze");

  Assert.IsTrue(results.Findings.Violations.Count == 0);
}

Prueba de estados y flujos de página

Este caso de prueba llama axe.Analyze() a escanear la página en diferentes estados o diferentes flujos de la página, compara los resultados con la aserción y crea un informe inicial:

Sintaxis de 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));
}

Sintaxis de 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);
}

Pruebas solo con reglas específicas

Esta prueba llama a axe.Analyze() para escanear la página con reglas específicas:

Sintaxis de 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));
}

Pruebas con reglas específicas deshabilitadas

Esta prueba llama a axe.Analyze() para escanear con reglas específicas deshabilitadas:

Sintaxis de 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));
}

Sintaxis de 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);
}

Prueba con un conjunto de reglas específico

Esta prueba llama a axe.Analyze() para escanear la página con un conjunto de reglas específico, en este caso 508:

Sintaxis de 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));
}

Sintaxis de 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)

La siguiente prueba llama axe.Analyze(); para excluir el contenido asociado con el ID #header de la prueba y garantiza que se pruebe el contenido con el ID #homecontent :

Sintaxis de 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));
}

Sintaxis de 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);
  }

Ejemplos descargables

Descargue y ejecute ambos ejemplos de axe DevTools C# NUnit y MSTest:

Consulte los README.md archivos en las carpetas de los paquetes descargados attestCSharpNUnit/attestCSharpExample y attestCSharpMSTest/attestMSTestExample para conocer los requisitos previos, la información de integración, los casos de prueba incluidos y la configuración de informes en cada paquete de ejemplo.