Atribuindo Violações a Testes

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

Veja qual teste desencadeou cada violação de acessibilidade no Axe Developer Hub

Not for use with personal data

Quando uma varredura encontra uma violação de acessibilidade, o Axe Developer Hub pode mostrar qual teste estava em execução no momento. Isso facilita rastrear uma violação até sua origem: abra o arquivo de teste, navegue até a localização do teste e corrija o problema.

Coleta Automática (JavaScript e TypeScript)

As seguintes integrações coletam o contexto de teste automaticamente. Nenhuma configuração é necessária:

  • Playwright Test: o caminho do arquivo de teste e o caminho do título são capturados de TestInfo no início de cada teste.
  • Cypress: o caminho do arquivo de teste e o caminho do título são capturados de Cypress.spec.relative e Cypress.currentTest.titlePath.
  • WebdriverIO Testrunner: o caminho do arquivo de teste e o caminho do título são capturados da cadeia de títulos describe/it do executor de testes.

Se você estiver usando uma dessas integrações com um executor de testes, as violações são atribuídas aos testes automaticamente.

Coleta Manual (Java)

Os testes em Java não têm acesso automático ao executor de testes, então você define o contexto de teste manualmente. Tanto AxeWatcherController (Selenium) quanto AxeWatcherPlaywrightController (Playwright) fornecem um método setTestContext().

Chame setTestContext() no início de cada teste, normalmente em um gancho @BeforeEach. Passe o caminho do arquivo de teste e uma lista representando a localização do teste (nome da classe e nome do método):

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

Usando JUnit TestInfo

Se o seu framework de teste fornecer a identidade do teste em tempo de execução, você pode passá-la diretamente:

@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)
        )
    );
}

Limpando o Contexto

Passe null, null para limpar a atribuição entre testes:

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