Trąba jest rozszerzenie Nos, który ułatwia testowanie wyższy poziom.
Zmiany, jak klasy testowe odkryte przez zmuszając ich do zarejestrowania się za pośrednictwem dekoratorów, które zawierają przydatne metadane, takie jak jakich grup są one w, czy nie mają zależności od innych testów, i czy powinny one być ignorowane.
Proboscis sortuje wszystkie zarejestrowane testy, do żądanej kolejności wykonywania następnie konstruuje zestaw testów, które przechodzi się do nosa. Może również filtrować tę listę tak, że jest możliwe, aby określić, które grupy testów chcesz uruchomić bez przechodzenia w dokładnych klas testowych. W czasie wykonywania testów, które są zależne od innych testów, którym nie udało się automatycznie oznaczane jako pomijane.
Wiele z tych funkcji "inspirowany" przez TestNG. Jeśli jesteś z tych ram, główne cechy trąba obecnie oferty są zależne od uporządkowania testu (obecnie jest ograniczony do poziomu klasy) i zdolność do organizowania swoich badań na grupy niezależnych od struktury ich moduły lub pakiety.
Z trąba możliwe do pisania testów, które są zależne od usługi sieciowej (lub innego uzależnienia, który chcesz tylko zainicjować raz) tak:
test (grupy = [""], service.tests = depends_on_groups ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Klasa WhenConnectingAsAdmin (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_change_profile_image def (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 ())
Następnie należy napisać kod, aby rozpocząć i czysto zamknąć serwis internetowy, który w żadnym innym modułem jako pierwszy samego testu klasy:
test (grupy = ["service.initialization"])
& Nbsp; & nbsp; & nbsp; Klasa StartWebServer (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_start def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; # Uruchom serwer WWW, a następnie wystawia connect.
& 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; Klient = 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 (grupy = ["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; Klasa StopService (unittest.TestCase):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; test_stop def (self):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Klient = mymodule.ServiceClient (service_config)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; jeśli 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 ())
Korzystanie trąba możesz mieć pewność, że badania zostaną wykonane w odpowiedniej kolejności, nawet jeśli dodać więcej klas testowych, zmienić nazwę lub przenieść je do różnych modułów
Wymagania .
- Python
- nos
Komentarze nie znaleziono