Ich führe Scherztests über durch npm test
. Jest führt Tests standardmäßig parallel aus. Gibt es eine Möglichkeit, die Tests nacheinander auszuführen?
Ich habe einige Tests, bei denen Code von Drittanbietern aufgerufen wird, bei denen das aktuelle Arbeitsverzeichnis geändert wird.
npm test --runInBand
? Offtopic: Ich bin mir nicht sicher, woher der Name "Band" kommt. - RunSequential würde wahrscheinlich mehr Sinn machen :)npm test -- --runInBand
ist korrekt.Ich bin immer noch mit Jest vertraut, aber es scheint, dass Beschreibungsblöcke synchron ausgeführt werden, während Testblöcke asynchron ausgeführt werden. Ich führe mehrere Beschreibungsblöcke innerhalb einer äußeren Beschreibung aus, die ungefähr so aussieht:
In diesem Fall
test3
wird erst ausgeführt, wenn der Vorgangtest2
abgeschlossen ist, da ertest3
sich in einem Beschreibungsblock befindet, der auf den Beschreibungsblock folgt, der ihn enthälttest2
.quelle
Es hat bei mir funktioniert, um sicherzustellen, dass sequentiell laufende Tests zu Modulen durchgeführt werden:
1) Bewahren Sie Tests in getrennten Dateien auf, jedoch ohne
spec/test
Benennung.2) Die Datei mit der Testsuite sollte auch so aussehen (testSuite1.js):
3) Importieren Sie sie in
testToRunSequentially.test.js
und führen Sie sie aus mit--runInBand
:quelle
Verwenden Sie den seriellen Testläufer:
Richten Sie jest ein, um es zu verwenden, z. B. in jest.config.js:
Sie können die Projektfunktion verwenden, um sie nur auf eine Teilmenge von Tests anzuwenden. Siehe https://jestjs.io/docs/en/configuration#projects-arraystring--projectconfig
quelle
Wie von https://github.com/facebook/jest/issues/6194#issuecomment-419837314 kopiert
test.spec.js
signup.js
login.js
quelle