npm test
を介してJestテストを実行しています。 Jestはデフォルトでテストを並行して実行します。テストを順番に実行する方法はありますか?
現在の作業ディレクトリの変更に依存するサードパーティコードを呼び出すテストがいくつかあります。
CLIオプションは文書化されていませんが、jest --help
コマンドを実行することでアクセスできます。
次に、探しているオプションが表示されます:--runInBand
。
私はまだJestに精通していますが、記述ブロックは同期的に実行されるのに対して、テストブロックは非同期的に実行されるようです。次のような外部記述内で複数の記述ブロックを実行しています。
describe
describe
test1
test2
describe
test3
この場合、test3
はtest2
を含む記述ブロックに続く記述ブロック内にあるため、test3
が完了するまでtest2
は実行されません。
うまく分離されたモジュールのテストを連続して実行することを保証しました:
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()
})
シリアルテストランナーを使用します。
npm install jest-serial-runner --save-dev
Jestを設定して使用します。 jest.config.js内:
module.exports = {
...,
runner: 'jest-serial-runner'
};
プロジェクト機能を使用して、テストのサブセットにのみ使用できます。