2014-04-02 8 views
5

Mam różne foldery testowe (pakiety). Chcę skonfigurować i odłóż niektóre dane dla konkretnego pakietu (folderu).konfiguracja/rozpad przy użyciu conftest w pytest

Problem jest set_up() jest wykonywany przed uruchomieniem przypadków testowych tego folderu, ale po uruchomieniu wszystkich skrzynek testowych, nie wykonuje się tear_down. Wykonuje się po uruchomieniu wszystkich testcases innych pakietów (folderów) również (po całej sesji pytest).

 [conftest.py] 

    @pytest.fixture(scope="session", autouse=True) 
     def set_up(request): 
      '''Test package setup''' 

     def tear_down(): 
      '''Test package teardown''' 

Każdy folder zawiera plik __init__.py, który jest oczywisty.

Więc jak mogę wykonać tear_down() zaraz po uruchomieniu wszystkich testcases w tym folderze, dla którego jest wykonywany set_up?

o ile wiem: scope="module" jest bezużyteczny w tym przypadku, ponieważ nie chcę konfigurować i rozbierać dla każdego testu.

Każda pomoc będzie świetna. Dzięki

+0

Jakie dane konfigurujesz i burzysz? Jak rozumiem twoje pytanie, chcesz czegoś takiego jak urządzenie z zakresem "pakietu", w którym możesz określić pakiet. Czy to jest poprawne? –

+0

Tak urządzenie do pakowania. Dane są zasadniczo związane z wstawianiem pewnych wartości do bazy danych Kasandra, zanim rozpocznę test i po zakończeniu wszystkich testów w tym folderze chcę obcinać wszystkie tabele. –

Odpowiedz

7

pytest nie obsługuje bezpośrednio urządzeń na poziomie pakietów. Unieważnia również.

Jeśli chodzi o główne ramy testowe, uważam, że nose is the only one to support package fixtures. Jednak nose2 zrzuca obsługę pakietów. Zobacz nose2 docs.

pytest obsługuje module, function, class, and method level fixtures dla urządzeń w stylu xunit.

+0

używanie nosa nie jest dobrym pomysłem. Wiedziałem o tym, ale podniosłem to pytanie w przypadku, gdy coś przeoczyłem. Nie ma dobrego rozwiązania, ale dzięki. –