Zuordnung von Verstößen zu Tests
Sehen Sie, welcher Test welche Barrierefreiheitsverletzung im Axe Developer Hub verursacht hat
Wenn bei einem Scan eine Barrierefreiheitsverletzung festgestellt wird, kann der Axe Developer Hub Ihnen zeigen, welcher Test zu diesem Zeitpunkt ausgeführt wurde. So können Sie eine Verletzung leicht auf ihre Quelle zurückverfolgen: Öffnen Sie die Testdatei, navigieren Sie zur Teststelle und beheben Sie das Problem.
Automatische Erfassung (JavaScript und TypeScript)
Die folgenden Integrationen erfassen den Testkontext automatisch. Keine Konfiguration ist erforderlich:
- Playwright Test: der Testdateipfad und der Titelpfad werden am Anfang jedes Tests von
TestInfoerfasst. - Cypress: der Testdateipfad und der Titelpfad werden von
Cypress.spec.relativeundCypress.currentTest.titlePatherfasst. - WebdriverIO Testrunner: der Testdateipfad und der Titelpfad werden aus der Titelkette des Testrunners
describe/iterfasst.
Wenn Sie eine dieser Integrationen mit einem Testrunner verwenden, werden Verstöße automatisch den Tests zugeordnet.
Manuelle Erfassung (Java)
Java-Tests haben keinen automatischen Zugriff auf den Testrunner, daher legen Sie den Testkontext manuell fest. Sowohl AxeWatcherController (Selenium) als auch AxeWatcherPlaywrightController (Playwright) bieten eine setTestContext()-Methode.
Rufen Sie setTestContext() am Anfang jedes Tests auf, typischerweise in einem @BeforeEach-Hook. Übergeben Sie den Testdateipfad und eine Liste, die den Teststandort repräsentiert (Klassenname und Methodenname):
@BeforeEach
public void setUp() {
driver.axeWatcher().setTestContext(
"src/test/java/com/acme/LoginTest.java",
java.util.Arrays.asList("LoginTest", "rejects bad password")
);
}Verwendung von JUnit TestInfo
Wenn Ihr Testframework die Testidentität zur Laufzeit bereitstellt, können Sie sie direkt übergeben:
@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)
)
);
}Löschung des Kontexts
Geben Sie null, null weiter, um die Zuordnung zwischen den Tests zu löschen:
driver.axeWatcher().setTestContext(null, null);