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
Not for use with personal data

Test del karma con axe DevTools

Questa integrazione con Karma funziona indipendentemente dal framework dell'interfaccia utente selezionato. Questa integrazione funziona con test per React, Angular, Vue, ecc.

Prerequisiti

Per testare i tuoi contenuti utilizzando Karma e axe DevTools, devi prima installare i seguenti pacchetti nel tuo progetto:

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

Impostazione della configurazione Karma

Per prima cosa dovremo configurare il nostro file karma.config (o karma.conf) per includere @axe-devtools/karma-json-reporter come plugin.

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

Quindi aggiungi axeDevTools alla reporters proprietà. È anche possibile utilizzare la proprietà axeDevToolsReporter con la directory di destinazione (dir). Per impostazione predefinita, i report verranno creati nella axeDevToolsReports directory al livello radice del progetto.

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

Una volta configurato, @axe-devtools/karma-json-reporter aggiungerà un oggetto reporter globale ai tuoi test denominato axeDevToolsReporter.

Impostazione del caso di prova

Per eseguire axe nelle spec di test per ogni componente o componente della pagina, aggiungere il seguente import:

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

Quindi, all'interno delle funzioni di configurazione dei test (ad esempio before() o beforeEach()), aggiungi la seguente init() funzione per assegnargli un set di regole specifico. Per impostazione predefinita viene utilizzato il set di regole wcag2.1 .

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

Ora dobbiamo creare un test come quello mostrato di seguito, in cui analizzeremo il componente o il componente della pagina per individuare problemi di accessibilità. Tuttavia, per chiamare correttamente AxeDevTools.run(), tutti i componenti non nativi dovranno essere compilati in un elemento nativo per poter eseguire la scansione corretta del 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);
});

Reporting con Karma e axe DevTools

Impostazione del reporting nel test

Ogni volta che AxeDevTools.run() viene chiamato, aggiungi una chiamata a axeDevToolsReporter.logTestResult() e passagli i risultati dell'esecuzione di axe. La funzione logTestResult può facoltativamente accettare un id come primo parametro, che verrà utilizzato come nome del test.

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

Ora, quando vengono eseguiti i test, verrà creato un file JSON per ogni scansione di axe DevTools registrata (chiamato @axe-devtools/karma-json-reporter ). axeDevToolsResults

Esecuzione dell'interfaccia a riga di comando di axe DevTools

Una volta completati i test e generati i report, possiamo generare un report axe DevTools utilizzando @axe-devtools/cli.

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

Risoluzione dei problemi

In caso di problemi con l'ottenimento dei risultati della scansione, contattare direttamente il rappresentante Deque, contattarci tramite il nostro support desk o inviarci un'e-mail. Saremo lieti di aiutarti.

Per maggiori informazioni su axe DevTools in generale, vedere la pagina di panoramica di axe DevTools.(overview-home)

Vedere anche