trompă este o extensie nas care facilitează testarea nivel superior.
Modificările cum clase de test sunt descoperite prin forțându-le să se înregistreze prin decoratori care conțin metadate utile, cum ar fi ce grupurile care se află, indiferent dacă au sau nu dependența de alte teste, iar în cazul în care ar trebui să fie ignorate.
Felul trompă toate testele înregistrate în ordinea centrare dorit construiește apoi o suita de teste care trece la nas. Se poate filtra, de asemenea, această listă, astfel încât este posibil să se specifice care grupuri de teste pe care doriți să rulați fără a trece în clasele exacte de testare. La rulare, teste care depind de alte teste care nu au reusit sunt marcate automat ca omise.
O mare parte din această funcționalitate a fost "inspirat" de TestNG. Dacă veniți de la acest cadru, principalele caracteristici trompă în prezent oferte de comanda dependente de testare (limitată în prezent la nivel de clasă) și capacitatea de a aranja teste în grupuri independente de structura de module sau pachete lor.
Cu trompă este posibil să scrie teste care depind de un serviciu web (sau o altă dependență dorești inițializa o singură dată) ca aceasta:
test (grupuri = ["service.tests"], depends_on_groups = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; clasă WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_change_profile_image (auto):
& 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 ())
Apoi scrie codul pentru a începe și curat închide acest serviciu web în orice alt modul ca un test de primă clasă în sine:
test (grupuri = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; clasă StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_start (auto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Porniți serverul de web, apoi emite un conectare.
& 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; client = 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 (grupuri = ["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; StopService clasă (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def test_stop (auto):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; client = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; în cazul în care 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 ())
Folosind trompă puteți fi siguri testele vor executa în ordinea dorită, chiar dacă adăugați mai multe clase de test, schimba numele lor, sau mutați-le la diferite module
Cerințe :.
- Python
- nas
Comentariile nu a fost găsit