Atribuindo Violações a Testes
Veja qual teste desencadeou cada violação de acessibilidade no Axe Developer Hub
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
TestInfono início de cada teste. - Cypress: o caminho do arquivo de teste e o caminho do título são capturados de
Cypress.spec.relativeeCypress.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/itdo 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);