Karma

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

Executando testes de acessibilidade com Axe DevTools para Web e Karma em frameworks de UI

Not for use with personal data

Testes com Karma e Axe DevTools

Esta integração com Karma funciona independentemente do framework de UI selecionado. Esta integração funcionará testando React, Angular, Vue, etc.

Pré-requisitos

Para testar seu conteúdo usando Karma e Axe DevTools, você primeiro precisa dos seguintes pacotes instalados em seu projeto:

  • @axe-devtools/karma-json-reporter
  • @axe-devtools/browser
  • @axe-devtools/cli

Configuração do Karma

Primeiro, precisaremos configurar nosso arquivo karma.config (ou karma.conf) para incluir o @axe-devtools/karma-json-reporter como um plugin.

plugins: [
  require('@axe-devtools/karma-json-reporter')
]

Então adicione axeDevTools à propriedade reporters. Também pode adicionar a propriedade axeDevToolsReporter com o diretório de destino (dir). Por padrão, os relatórios serão criados no diretório axeDevToolsReports no nível raiz do seu projeto.

reporters: ['axeDevTools'],
axeDevToolsReporter: {
  dir: 'axe-results'
},

Uma vez configurado, o @axe-devtools/karma-json-reporter adicionará um objeto de relatórios global aos seus testes chamado axeDevToolsReporter.

Configuração de casos de teste

Para executar o axe dentro das especificações de teste para cada componente ou página, adicione a seguinte importação:

import * as AxeDevTools from "@axe-devtools/browser";

Em seguida, dentro das funções de configuração de seus testes (por exemplo, before() ou beforeEach()), adicione a seguinte função init() para atribuir um conjunto de regras específico. Por padrão, o conjunto de regras wcag2.1 é usado.

before(() => {
  AxeDevTools.init("wcag2.1");
});

Agora precisamos criar um teste como o mostrado abaixo, onde iremos verificar o componente ou página para problemas de acessibilidade. No entanto, para chamar AxeDevTools.run() corretamente, qualquer componente não nativo precisará ser compilado em um elemento nativo para verificar adequadamente o componente.

it("should have no accessibility violations", async () => {
  const fixture = TestBed.createComponent(AppComponent);
  fixture.detectChanges();
  const compiled = fixture.debugElement.nativeElement;
  
  const results = await AxeDevTools.run(compiled);
  expect(results.violations).toHaveLength(0);
});

Relatórios com Karma e Axe DevTools

Configurar Relatórios no Teste

Cada vez que AxeDevTools.run() for chamado, adicione uma chamada para axeDevToolsReporter.logTestResult() e passe os resultados da execução do axe. A função logTestResult pode opcionalmente receber um id como primeiro parâmetro, que será usado como o nome do teste.

it("should have no accessibility violations", async () => {
  const fixture = TestBed.createComponent(AppComponent);
  fixture.detectChanges();
  const compiled = fixture.debugElement.nativeElement;
  
  const results = await AxeDevTools.run(compiled);
  axeDevToolsReporter.logTestResult(results);
  expect(results.violations).toHaveLength(0);
});

Agora, quando os testes forem executados, o @axe-devtools/karma-json-reporter criará um arquivo JSON para cada análise do Axe DevTools registrada (chamada axeDevToolsResults).

Executando o Axe DevTools CLI

Uma vez que os testes são concluídos e os relatórios foram gerados, podemos gerar um relatório do Axe DevTools usando o @axe-devtools/cli.

"test": "karma start && axe reporter ./axe-results --format=html",

Resolução de Problemas

Se você tiver problemas para obter resultados de varredura, entre em contato com seu representante Deque diretamente, contate-nos através do nosso suporte técnico, ou envie-nos um e-mail. Ficaremos felizes em ajudar.

Para mais informações sobre o Axe DevTools em geral, veja a página de visão geral do Axe DevTools

Veja Também