2011-10-15 14 views
7

mam tej klasy badawczej:testy przestanie działać Jeśli Instalator zgłasza wyjątek w Pythonie unittest

class mytest(unittest.TestCase): 
    def setUp(self): 
     os.mkdir(...) 
     ... 

    def tearDown(self): 
     shutil.rmtree(...) 

    def test_one(self): 
     ... 

    def test_two(self): 
     ... 

Jeśli coś nie powiedzie się po mkdir nie zabrakło podczas uruchamiania setUp z test_one będzie nadal próbować uruchomić setUp z test_two. W tym momencie otrzymam komunikat o błędzie: mkdir, ponieważ rmtree nie został uruchomiony.

Czy istnieje sposób, aby powiedzieć Python unittest, aby przerwać bieżący test, jeśli nie powiedzie się setUp? Jestem nie chce zatrzymać się na regularnej awarii testu.

+0

to hacky, ale może po prostu złapać wyjątki w swojej metodzie setUp' 'a nie odpowiednio – dm03514

+0

jeśli jej poprawne można zaakceptować =) – JiminyCricket

Odpowiedz

11

Dodaj wywołanie awarii w metodzie setUp.

def setUp(self): 
    try: 
     somethingThatMightFail() 
    except: 
     self.fail() 
Powiązane problemy