2017-12-06 137 views
5

Mam kilka wersji nosetests z przypadkami testowymi w różnych modułach (plikach), z których każdy zawiera różne testy.Jak zdefiniować metodę konfiguracji, która jest wywoływana tylko raz podczas testowania z nosem?

Chcę zdefiniować funkcję/metodę, która jest wywoływana tylko raz podczas wykonywania z nosetest.

Spojrzałem na documentation (i np. here) i widzę, że istnieją metody takie jak setup_module itd. - ale gdzie i jak z nich korzystać? Umieść je w mojej __init__.py? Coś innego?

Próbowałem użyć następujących:

class TestSuite(basicsuite.BasicSuite): 
    def setup_module(self): 
     print("MODULE") 

    ... 

ale wydruk nie jest wykonywana, kiedy uruchomić test z nosetest. Również nie wyprowadzam z unittest.TestCase (co spowoduje błędy).

Odpowiedz

9

Patrząc na poziom pakietu, można zdefiniować funkcję o nazwie setup w __init__.py tego pakietu. Wywołując testy w tym pakiecie, funkcja setup w __init__.py jest wywoływana raz.

Przykład Konfiguracja

- package 
    - __init__.py 
    - test1.py 
    - test2.py 

documentation patrz sekcja "pakiety testowe.

1

Spróbuj jeden

from nose import with_setup 

def my_setup_function(): 
    print ("my_setup_function") 

def my_teardown_function(): 
    print ("my_teardown_function") 

@with_setup(my_setup_function, my_teardown_function) 
def test_my_cool_test(): 
    assert my_function() == 'expected_result' 

Holp pomaga ^^