axe-devtools-unittest API-referentie
API-referentie voor het axe-devtools-unittest pakket dat toegankelijkheidsasserties biedt voor unittest
Dit pakket biedt hulpbijstand die unittest uitbreidt om te integreren met Axe DevTools.
axe_devtools_unittest.AxeAssertions
Een mixin-klasse die toegankelijkheidsbevestigingen toevoegt aan unittest.TestCase. De testklasse moet zowel unittest.TestCase als AxeAssertions uitbreiden.
class MyTests(unittest.TestCase, AxeAssertions):
...assertIsAxeClean(results)
Bevestig dat axe-core geen overtredingen heeft gevonden.
results: Het resultatenobject geretourneerd door Axe.analyze().
Verhoogt AssertionError als er overtredingen zijn. Het foutbericht bevat een overtredingenrapport.
assertNoIncomplete(results)
Bevestig dat alle door axe-core uitgevoerde controles zijn voltooid.
Niet-voltooide controles zijn die welke noch definitief geslaagd noch definitief mislukt zijn en handmatige controle vereisen.
results: Het resultatenobject geretourneerd door Axe.analyze().
Verhoogt AssertionError als er controles onvolledig zijn.
assertInapplicable(results, *rules)
Bevestig dat de opgegeven regels niet-toepasbare resultaten hebben opgeleverd.
results: Het resultatenobject geretourneerd door Axe.analyze().
rules: Een of meer regel-ID's om te controleren op niet-van-toepassing zijnde status.
Verhoogt AssertionError als een van de gespecificeerde regels niet in de niet-van-toepassing zijnde resultaten staat.
Voorbeeld
Het volgende voorbeeld kan direct met Python worden uitgevoerd, ervan uitgaande dat axe-devtools-api, axe-devtools-selenium en axe-devtools-unittest zijn geïnstalleerd.
import unittest
from os import path
from axe_devtools_api import Axe
from axe_devtools_selenium import AxeDriver
from axe_devtools_unittest import AxeAssertions
from selenium import webdriver
class TestAxe(unittest.TestCase, AxeAssertions):
def setUp(self):
self.page = webdriver.Chrome()
self.page.get("http://localhost:8000/example-page.html")
self.axe = Axe(AxeDriver(self.page))
def test_run_axe(self):
res = self.axe.analyze()
assert res.is_axe_clean(), res.violations_report()
def test_with_rules(self):
res = self.axe \
.with_rules("document-title", "label") \
.with_rules("region") \
.analyze()
self.assertNoIncomplete(res)
self.assertIsAxeClean(res)
def test_including_within_frame(self):
res = self.axe \
.including("#my-frame", "body") \
.analyze()
self.assertNoIncomplete(res)
self.assertIsAxeClean(res)
if __name__ == '__main__':
unittest.main()