Attribuire le Violazioni ai Test

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

Vedi quale test ha attivato ciascuna violazione di accessibilità in Axe Developer Hub

Not for use with personal data

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 TestInfo all'inizio di ogni test.
  • Cypress: il percorso del file del test e il percorso del titolo sono catturati da Cypress.spec.relative e Cypress.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);