npm run test
로 여러 테스트 파일을 동시에 실행할 때 충돌이 발생한 상황
npm run test
명령어 실행 시 대부분의 테스트 프레임워크는 테스트 실행 시간을 줄이기 위해 기본적으로 모든 테스트 파일을 병렬로 실행하는데, 이 때 동일한 데이터베이스를 사용하여 동시에 접근할 때 충돌이 발생한 것으로 추정
maxWorkers
옵션: 병렬로 실행할 작업자 수 제한
명령어로 설정: jest --maxWorkers=4
package.json
파일 스크립트 설정:
"scripts": {
"test": "jest --maxWorkers=4"
}
단일 실행 모드: jest --runInBand
명령어로 테스트 파일 순차적 실행
Setup/Teardown: 테스트 간의 자원 공유 문제를 해결하기 위해 각 테스트 파일 또는 테스트 케이스 전후에 자원을 초기화
// Example.test.js
beforeEach(async () => {
// Setup code, e.g. initializing database
});
afterEach(async () => {
// Teardown code, e.g. cleaning up database
});
package.json
{
"scripts": {
"test": "jest"
},
"jest": {
"testEnvironment": "node",
"setupFilesAfterEnv": ["<rootDir>/jest.setup.js"],
"maxWorkers": 4
}
}
jest.config.js
module.exports = {
testEnvironment: 'node',
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'], // Setup code
maxWorkers: 4
};