web-dev-qa-db-ja.com

Jestテストを連続して実行する方法は?

npm testを介してJestテストを実行しています。 Jestはデフォルトでテストを並行して実行します。テストを順番に実行する方法はありますか?

現在の作業ディレクトリの変更に依存するサードパーティコードを呼び出すテストがいくつかあります。

102
Martin Konicek

CLIオプションは文書化されていませんが、jest --helpコマンドを実行することでアクセスできます。

次に、探しているオプションが表示されます:--runInBand

161
ncuillery

私はまだJestに精通していますが、記述ブロックは同期的に実行されるのに対して、テストブロックは非同期的に実行されるようです。次のような外部記述内で複数の記述ブロックを実行しています。

describe
    describe
        test1
        test2

    describe
        test3

この場合、test3test2を含む記述ブロックに続く記述ブロック内にあるため、test3が完了するまでtest2は実行されません。

7
SuperCodeBrah

うまく分離されたモジュールのテストを連続して実行することを保証しました:

1)別々のファイルにテストを保存しますが、名前にspec/testを含めません。

|__testsToRunSequentially.test.js
|__tests
   |__testSuite1.js
   |__testSuite2.js
   |__index.js

2)テストスイートを含むファイルも次のようになります(testSuite1.js):

export const testSuite1 = () => describe(/*your suite inside*/)

3)それらをtestToRunSequentially.test.jsにインポートし、--runInBandで実行します:

import { testSuite1, testSuite2 } from './tests'

describe('sequentially run tests', () => {
   testSuite1()
   testSuite2()
})
3
Krzysztof Nowak

シリアルテストランナーを使用します。

npm install jest-serial-runner --save-dev

Jestを設定して使用します。 jest.config.js内:

module.exports = {
   ...,
   runner: 'jest-serial-runner'
};

プロジェクト機能を使用して、テストのサブセットにのみ使用できます。

1
Joachim Lous