Attribution des Violations aux Tests

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

Découvrir quel test a déclenché chaque violation d'accessibilité dans Axe Developer Hub

Not for use with personal data

Lorsqu'un scan détecte une violation d'accessibilité, Axe Developer Hub peut vous montrer quel test était en cours d'exécution à ce moment-là. Cela facilite le traçage d'une violation jusqu'à sa source : ouvrez le fichier de test, accédez à l'emplacement du test et corrigez le problème.

Collecte Automatique (JavaScript et TypeScript)

Les intégrations suivantes collectent automatiquement le contexte des tests. Aucune configuration n'est requise :

  • Playwright Test : le chemin du fichier de test et le chemin du titre sont capturés depuis TestInfo au début de chaque test.
  • Cypress : le chemin du fichier de test et le chemin du titre sont capturés depuis Cypress.spec.relative et Cypress.currentTest.titlePath.
  • WebdriverIO Testrunner : le chemin du fichier de test et le chemin du titre sont capturés depuis la chaîne de titres describe/it du test runner.

Si vous utilisez l'une de ces intégrations avec un test runner, les violations sont automatiquement attribuées aux tests.

Collecte Manuelle (Java)

Les tests Java n'ont pas un accès automatique au test runner, vous devez donc définir manuellement le contexte du test. Tant AxeWatcherController (Selenium) que AxeWatcherPlaywrightController (Playwright) fournissent une méthode setTestContext().

Appelez setTestContext() au début de chaque test, généralement dans un hook @BeforeEach. Passez le chemin du fichier de test et une liste représentant l'emplacement du test (nom de la classe et nom de la méthode) :

@BeforeEach
public void setUp() {
    driver.axeWatcher().setTestContext(
        "src/test/java/com/acme/LoginTest.java",
        java.util.Arrays.asList("LoginTest", "rejects bad password")
    );
}

Utilisation de JUnit TestInfo

Si votre framework de test fournit une identité de test à l'exécution, vous pouvez la transmettre directement :

@BeforeEach
public void setUp(TestInfo testInfo) {
    driver.axeWatcher().setTestContext(
        testInfo.getTestClass().map(Class::getName).orElse(null)
            .replace('.', '/') + ".java",
        java.util.Arrays.asList(
            testInfo.getTestClass().map(Class::getSimpleName).orElse(null),
            testInfo.getTestMethod().map(Method::getName).orElse(null)
        )
    );
}

Nettoyer le Contexte

Passez null, null pour effacer l'attribution entre les tests :

driver.axeWatcher().setTestContext(null, null);