tromp is 'n Neus uitbreiding wat dit moontlik 'n hoër vlak toets.
Wysigings hoe toets klasse ontdek deur hulle te dwing om via ontwerpers wat nuttig metadata bevat te registreer soos wat groepe hulle in, ongeag of hulle afhanklikes op ander toetse, en as hulle moet geïgnoreer word.
Tromp vorme alle geregistreerde toetse in die gewenste run om bou dan 'n toets suite wat dit verby te neus. Dit kan ook die filter die lys sodat dit moontlik is om te spesifiseer watter groepe toetse wat jy wil om te hardloop sonder om in die presiese toets klasse. Op runtime, toetse wat afhanklik is van ander toetse wat misluk het, word outomaties gemerk as oorgeslaan.
Baie van hierdie funksie is "geïnspireer" deur TestNG. As jy kom uit daardie raamwerk, die belangrikste kenmerke tromp tans bied, is afhanklik toets bestel (tans beperk tot die klas) en die vermoë om jou toetse te reël in groepe onafhanklik van die struktuur van hul modules of pakkette.
Met die neus is dit moontlik toetse wat afhanklik is van 'n web-diens (of 'n ander afhanklikheid jy wil net een keer inisialiseer) soos hierdie te skryf:
test (groepe = ["service.tests"], depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; klas WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_change_profile_image (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("default.jpg", self.client.get_profile_image ())
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.client.set_profile_image ("spam.jpg")
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertEquals ("spam.jpg", self.client.get_profile_image ())
Skryf dan die kode om te begin en skoon gesluit dat die web diens in enige ander module as 'n eerste klas toets self:
test (groepe = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; klas StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_start (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Begin web bediener, dan reik 'n verbinding.
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.start_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kliënt = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertTrue (client.service_is_up)
& Nbsp; & nbsp; & nbsp; test (groepe = ["service.shutdown"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; depends_on_groups = ["service.initialization", "service.tests"],
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; never_skip = True)
& Nbsp; & nbsp; & nbsp; klas StopService (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_stop (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; kliënt = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; As client.service_is_up:
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; mymodule.stop_web_server ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; self.assertFalse (client.service_is_up ())
Met behulp van die neus kan jy gerus die toetse sal voer in die gewenste orde, selfs as jy meer toets klasse by te voeg, verander hul naam, of skuif dit na verskillende modules
Vereistes :.
- Python
- neus
Kommentaar nie gevind