Attribution des Violations aux Tests
Découvrir quel test a déclenché chaque violation d'accessibilité dans Axe Developer Hub
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
TestInfoau début de chaque test. - Cypress : le chemin du fichier de test et le chemin du titre sont capturés depuis
Cypress.spec.relativeetCypress.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/itdu 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);