Pytest: jak pominąć pozostałe testy w klasie, jeśli się nie powiodło?
Tworzę przypadki testowe do testów internetowych przy użyciu frameworków Jenkins, Python, Selenium2 (webdriver) i Py.test.
Do tej pory organizuję moje testy w następującej strukturze:
każdyKlasa jestPrzypadek testowy i każdytest_
metoda jestKrok testowy.
Ta konfiguracja działa WSPANIAŁO, gdy wszystko działa prawidłowo, jednak gdy jeden krok ulega awarii, reszta „Test Steps” oszaleje. Jestem w stanie powstrzymać awarię wewnątrz klasy (przypadek testowy) za pomocąteardown_class()
, jednak zastanawiam się, jak to poprawić.
Potrzebuję jakoś pominąć (lub xfail) resztętest_
metody w ramach jednej klasy, jeśli jeden z nich zawiódł, tak że pozostałe przypadki testowe nie są uruchamiane i oznaczone jako NIEUDANE (ponieważ byłoby to fałszywie dodatnie)
Dzięki!
AKTUALIZACJA: Nie szukam ani odpowiedzi „to zła praktyka”, ponieważ nazywanie tego w ten sposób jest bardzo dyskusyjne. (każda klasa testowa jest niezależna - i to powinno wystarczyć).
AKTUALIZACJA 2: Umieszczenie warunku „jeśli” w każdej metodzie testowej nie wchodzi w grę - to DUŻO powtarzających się prac. To, czego szukam, to (być może) ktoś wie, jak korzystać zhaczyki do metod klasowych.