Attribuire le Violazioni ai Test
Vedi quale test ha attivato ciascuna violazione di accessibilità in Axe Developer Hub
Quando una scansione rileva una violazione di accessibilità, Axe Developer Hub può mostrarti quale test era in esecuzione in quel momento. Questo rende facile risalire la violazione alla sua origine: apri il file del test, naviga alla posizione del test e risolvi il problema.
Raccolta Automatica (JavaScript e TypeScript)
Le seguenti integrazioni raccolgono automaticamente il contesto del test. Non è richiesta alcuna configurazione:
- Playwright Test: il percorso del file del test e il percorso del titolo sono catturati da
TestInfoall'inizio di ogni test. - Cypress: il percorso del file del test e il percorso del titolo sono catturati da
Cypress.spec.relativeeCypress.currentTest.titlePath. - Testrunner WebdriverIO: il percorso del file del test e il percorso del titolo sono catturati dalla catena dei titoli del test runner
describe/it.
Se utilizzi una di queste integrazioni con un test runner, le violazioni vengono attribuite ai test automaticamente.
Raccolta Manuale (Java)
I test Java non hanno accesso automatico al test runner, quindi è necessario impostare manualmente il contesto del test. Sia AxeWatcherController (Selenium) che AxeWatcherPlaywrightController (Playwright) forniscono un metodo setTestContext().
Chiama setTestContext() all'inizio di ciascun test, tipicamente in un hook @BeforeEach. Passa il percorso del file del test e un elenco che rappresenta la posizione del test (nome della classe e nome del metodo):
@BeforeEach
public void setUp() {
driver.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Utilizzo di JUnit TestInfo
Se il tuo framework di test fornisce identità del test in fase di runtime, puoi passarla direttamente:
@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)
)
);
}Cancellare il Contesto
Passa null, null per cancellare l'attribuzione tra i test:
driver.axeWatcher().setTestContext(null, null);