Overtredingen Toewijzen aan Tests
Zie welke test elke toegankelijkheidsovertreding in Axe Developer Hub heeft veroorzaakt
Wanneer een scan een toegankelijkheidsovertreding ontdekt, kan Axe Developer Hub je tonen welke test op dat moment draaide. Dit maakt het eenvoudig om een overtreding terug te traceren naar de bron: open het testbestand, navigeer naar de testlocatie en los het probleem op.
Automatische Verzameling (JavaScript en TypeScript)
De volgende integraties verzamelen automatisch testcontext. Er is geen configuratie vereist:
- Playwright Test: het testbestandspad en het titelpaden worden bij het begin van elke test van
TestInfovastgelegd. - Cypress: het testbestandspad en het titelpaden worden van
Cypress.spec.relativeenCypress.currentTest.titlePathvastgelegd. - WebdriverIO Testrunner: het testbestandspad en het titelpaden worden vastgelegd uit de titelketen van de testrunner
describe/it.
Als je een van deze integraties met een testrunner gebruikt, worden overtredingen automatisch aan tests toegewezen.
Handmatige Verzameling (Java)
Java-tests hebben geen automatische toegang tot de testrunner, dus stel je de testcontext handmatig in. Zowel AxeWatcherController (Selenium) als AxeWatcherPlaywrightController (Playwright) bieden een setTestContext()-methode.
Roep setTestContext() aan aan het begin van elke test, meestal in een @BeforeEach-hook. Geef het testbestandspad en een lijst die de testlocatie vertegenwoordigt (klassennaam en methode-naam) door:
@BeforeEach
public void setUp() {
driver.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Gebruik van JUnit TestInfo
Als je testframework testidentiteit tijdens runtime biedt, kun je deze direct doorgeven:
@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)
)
);
}De Context Wissen
Geef null, null door om de toewijzing tussen tests te wissen:
driver.axeWatcher().setTestContext(null, null);