Escrevendo Testes para Axe DevTools for Web em 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

Como escrever testes eficazes para acessibilidade usando Axe DevTools for Web para C#

Not for use with personal data

Este guia fornece testes de exemplo para NUnit e MSTest. Todos os testes usam a classe AxeReporting para criar resultados de relatórios iniciais. Para mais informações sobre as classes de teste do Axe DevTools, visite a Referência de API C#.

Um teste básico padrão

O teste a seguir chama axe.Analyze() para analisar a página, compara os resultados com a asserção e cria uma saída de relatório inicial usando a classe AxeReporting.

Sintaxe NUnit

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

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

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

Sintaxe MSTest

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

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

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

Testando estados e fluxos de página

Este caso de teste chama axe.Analyze() para escanear a página em diferentes estados ou fluxos, compara os resultados com a asserção e cria uma saída de relatório inicial:

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

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

Testando apenas com regras específicas

Este teste chama axe.Analyze() para escanear a página com regras especificadas:

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

Testando com regras específicas desativadas

Este teste chama axe.Analyze() para escanear com regras específicas desativadas:

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

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

Testando com um conjunto de regras específico

Este teste chama axe.Analyze() para escanear a página com um conjunto de regras especificado, neste caso 508:

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

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

Testando uma parte específica da página (teste com escopo)

O teste a seguir chama axe.Analyze(); para excluir do teste o conteúdo associado ao ID #header e garante que o conteúdo com o ID #homecontent seja testado:

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

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