2016-12-24 17 views
9

Czy możliwe jest wykonanie czynności Czyszczenie lub rozbiórki po zakończeniu wszystkich innych testów? Podobny do tego, w jaki sposób setupFiles pozwala na konfigurowanie zadań po jakimkolwiek uruchomieniu testu. Punkty premiowe, jeśli może to również działać, niezależnie od tego, czy test zawiera błędy.Czyszczenie po przeprowadzeniu wszystkich testów

Umieszczenie afterAll(() => {}) na najwyższym poziomie pliku (poza funkcją opisywania) pojawia się tylko w celu uruchomienia po zakończeniu testów z tego konkretnego pliku.

W przypadku użycia mam wiele plików testowych, które utworzą użytkowników w rozbudowanej bazie danych, i nie chcę, aby każdy plik testowy był odpowiedzialny za czyszczenie i usuwanie użytkownika. Błędy mogą się również zdarzyć podczas pisania testów, więc jeśli czyszczenie nastąpi niezależnie od błędów, które byłyby lepsze.

+0

myślę każde badanie musi mieć pełną kontrolę nad środowiskiem, więc każde badanie musi być odpowiedzialny za jego otoczenia. Może to, czego potrzebujesz, to mieć więcej niż jedno środowisko, na przykład jeden może być uruchomiony w pamięci (z fałszywą implementacją bazy danych) i inny, który naprawdę działa z bazą danych. –

+0

Czy możesz dodać polecenie czyszczenia w swoim programie testowym? tzn. jeśli używasz gulp, make, grunt itp:: run_your_tests.js; clean_up_database; ' – dm03514

Odpowiedz

5

Istnieje hak dla rodzeństwa dla setupFiles, który będzie również strzelał przed każdym zestawem testów, ale zaraz po tym, jak tester (domyślnie Jasmine2) zainicjował globalne środowisko.

Nazywa się setupTestFrameworkScriptFile i pobiera ciąg jako parametr, a nie tablicę jak w setupFiles.

Używaj go tak:

{ 
    "setupTestFrameworkScriptFile": "<rootDir>/setup.js" 
} 

Przykład setup.js:

beforeAll(() => console.log('beforeAll')); 
afterAll(() => console.log('afterAll')); 

setup.js nie musi eksportować czegokolwiek. Będzie wykonywany przed każdym zestawem testów (każdy plik testowy). Ponieważ program testowy został już zainicjowany, funkcje globalne, takie jak beforeAll i afterAll, są w zakresie tak jak w zwykłym pliku testowym, dzięki czemu można je wywoływać w dowolny sposób.

setupTestFrameworkScriptFile firing beforeAll and afterAll

+2

słodko, to wygląda na to, czego potrzebowałem! Dziękuję Ci. – dcochran

Powiązane problemy