답변:
CLI 옵션은 문서화 되어 있으며 명령을 실행하여 액세스 할 수도 있습니다 jest --help
.
찾고있는 옵션이 표시 --runInBand
됩니다..
npm test -- --runInBand
이 맞습니다.
여전히 Jest에 익숙하지만 테스트 블록은 비동기 적으로 실행되는 반면 블록을 설명하는 것은 동 기적으로 실행되는 것으로 보입니다. 외부 설명 내에서 다음과 같은 여러 설명 블록을 실행하고 있습니다.
describe
describe
test1
test2
describe
test3
이 경우을 포함 하는 describe 블록 다음에 오는 describe 블록에 있으므로 완료 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.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
습니까? 주제 : "band"라는 이름의 출처가 확실하지 않습니다. --runSequentially 아마 더 이해가 될 것입니다 :)