を介してJestテストを実行していnpm test
ます。Jestはデフォルトで並行してテストを実行します。テストを順番に実行する方法はありますか?
現在の作業ディレクトリの変更に依存するサードパーティのコードを呼び出すテストがいくつかあります。
を介してJestテストを実行していnpm test
ます。Jestはデフォルトで並行してテストを実行します。テストを順番に実行する方法はありますか?
現在の作業ディレクトリの変更に依存するサードパーティのコードを呼び出すテストがいくつかあります。
回答:
CLIオプションは文書化されており、コマンドを実行してアクセスすることもできますjest --help
。
探しているオプションが表示されます--runInBand
。
npm test -- --runInBand
は正しいです。
それは私にうまく分離されたモジュールテストの連続した実行を保証するために働きました:
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.config.jsなどで、jestを使用するように設定します。
module.exports = {
...,
runner: 'jest-serial-runner'
};
プロジェクト機能を使用して、テストのサブセットにのみ適用することができます。https://jestjs.io/docs/en/configuration#projects-arraystring--projectconfigを参照してください
https://github.com/facebook/jest/issues/6194#issuecomment-419837314からコピーしたとおり
test.spec.js
import { signuptests } from './signup'
import { logintests } from './login'
describe('Signup', signuptests)
describe('Login', logintests)
signup.js
export const signuptests = () => {
it('Should have login elements', () => {});
it('Should Signup', () => {}});
}
login.js
export const logintests = () => {
it('Should Login', () => {}});
}
npm test --runInBand
ね?オフトピック:「バンド」という名前の由来は不明。--runSequentiallyはおそらくもっと理にかなっています:)