를 통해 Jest 테스트를 실행하고 npm test
있습니다. Jest는 기본적으로 테스트를 병렬로 실행합니다. 테스트를 순차적으로 실행할 수있는 방법이 있습니까?
현재 작업 디렉토리 변경에 의존하는 타사 코드를 호출하는 테스트가 있습니다.
답변
CLI 옵션은 문서화 되어 있으며 명령을 실행하여 액세스 할 수도 있습니다 jest --help
.
찾고있는 옵션이 표시 --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', () => {}});
}