Mam kilka testów jednostkowych opartych na klasach uruchamianych w systemie unittest2 Pythona. Używamy Selenium WebDriver, który ma wygodną metodę save_screenshot()
. Chciałbym pobrać zrzut ekranu w tearDown() dla każdego niepowodzenia testu, aby skrócić czas debugowania, aby test zakończył się niepowodzeniem.Jak wykonać kod tylko przy niepowodzeniach testowych z python unittest2?
Jednak nie mogę znaleźć sposobu na uruchomienie kodu tylko w przypadku błędów testowych. tearDown()
jest wywoływana niezależnie od tego, czy test się powiedzie, i nie chcę zaśmiecać naszego systemu plików setkami zrzutów ekranu przeglądarki dla testów, które się powiodły.
Jak podejdziesz do tego?
Wow, co za hack. Klasa wyjątków, owinięta w funkcję, owinięta we własność, wszystko po to, aby uzyskać instancję 'TestCase' w metodzie' __init __() 'wyjątku. Brzydki, ale przynajmniej działa! – kindall