Prowadzę testy Jest przez npm test
. Jest domyślnie uruchamia testy równolegle. Czy istnieje sposób, aby testy były uruchamiane sekwencyjnie?
Mam kilka testów wywołujących kod innej firmy, który polega na zmianie bieżącego katalogu roboczego.
Opcje interfejsu wiersza polecenia są udokumentowane i dostępne również po uruchomieniu polecenia jest --help
.
Zobaczysz opcję szukasz: --runInBand
.
npm test --runInBand
? Offtopic: Nie jestem pewien, skąd pochodzi nazwa „zespół”. --runSekwencyjnie pewnie miałoby więcej sensu :)npm test -- --runInBand
ma rację.Wciąż poznaję Jest, ale wydaje się, że opisywanie bloków jest wykonywane synchronicznie, podczas gdy bloki testowe działają asynchronicznie. Uruchamiam wiele bloków opisu w ramach zewnętrznego opisu, który wygląda mniej więcej tak:
W tym przypadku
test3
nie działa, dopóki nietest2
zostanie zakończona, ponieważtest3
znajduje się w bloku opisu, który następuje po bloku opisu, który zawieratest2
.źródło
U mnie zadziałało zapewniając sekwencyjne uruchamianie ładnie rozdzielonych na moduły testów:
1) Przechowuj testy w oddzielnych plikach, ale bez
spec/test
nazewnictwa.2) Plik z zestawem testów również powinien wyglądać tak (testSuite1.js):
3) Zaimportuj je do
testToRunSequentially.test.js
i uruchom z--runInBand
:źródło
Użyj seryjnego programu uruchamiającego testy:
Ustaw żart, aby go używać, np. W jest.config.js:
Możesz użyć funkcji projektu, aby zastosować ją tylko do podzbioru testów. Zobacz https://jestjs.io/docs/en/configuration#projects-arraystring--projectconfig
źródło
Jak skopiowano z https://github.com/facebook/jest/issues/6194#issuecomment-419837314
test.spec.js
signup.js
login.js
źródło