Tests schreiben mit Axe DevTools Cypress

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

Barrierefreiheitstests mit Axe DevTools für Web in Cypress schreiben

Not for use with personal data

Das Erzeugen von Barrierefreiheitsscannergebnissen mit Axe DevTools kann so einfach wie eine Codezeile sein. Diese Ergebnisse können unverarbeitet genutzt, in Verbindung mit einer Assertionsbibliothek verwendet oder zur Erstellung von Barrierefreiheitsberichten genutzt werden.

note

Diese Anweisungen gelten für Cypress 10.0 und höher.

Voraussetzungen

Um Seiten mit Axe DevTools zu testen, muss es zunächst in Ihrem Projekt installiert sein. Wenn Sie diesen Schritt noch nicht abgeschlossen haben, sehen Sie sich den Installationsleitfaden an.

Projektstruktur

.
├── package.json
├── cypress.config.js
├── cypress
│   ├── e2e
│   │   └── test.cy.js
│   └── support
│       └── e2e.js

Einrichtung

Folgendes ist erforderlich, um Axe DevTools Cypress zu verwenden.

Fügen Sie die folgende Zeile in cypress/support/e2e.js ein:

import '@axe-devtools/cypress';

Innerhalb der cypress.config.js -Datei müssen Sie Folgendes hinzufügen:

const { defineConfig } = require('cypress');
const axeDevtoolsCypressPlugin = require("@axe-devtools/cypress/dist/plugin");

module.exports = defineConfig({
   e2e: {
     setupNodeEvents(on, config) {
       axeDevtoolsCypressPlugin(on);
       return config;
     }
   }
 });

Vollständige Beispieldatei

Rufen Sie cy.axeAnalyze() und cy.getAxeResults() innerhalb jedes it() -Blocks auf, und verwenden Sie einen eindeutigen Dateinamen für jeden Test, um das Überschreiben von Ergebnissen anderer Tests zu vermeiden.

Fügen Sie diesen Code in die test.cy.js -Datei im e2e Verzeichnis ein:

describe('Axe DevTools Cypress', () => {
  it('Scans the home page for accessibility issues', () => {
    // Visit the page to test
    cy.visit('https://broken-workshop.dequelabs.com')
    // Run an accessibility scan on the current page
    cy.axeAnalyze()
    // Write results to a uniquely named file; use a different name for each test to avoid overwriting
    cy.getAxeResults().then(results => {
      cy.writeFile('./results/broken-workshop.json', results)
    })
  })
})