npm run test 명령어 실행 시 대부분의 테스트 프레임워크는 테스트 실행 시간을 줄이기 위해 기본적으로 모든 테스트 파일을 병렬로 실행
병렬 실행의 이점과 문제점
- 이점
- 테스트 실행 시간 단축
- CPU 코어 최대한 활용 가능
- 문제점
- 테스트 간 공유되는 자원(e.g. 데이터베이스, 파일 시스템 등)이 있을 경우 충돌 발생 가능
- 전역 상태를 변경하는 테스트는 다른 테스트에 영향을 줄 수 있음
Jest의 병렬 실행 제어 방법
- 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
});
Jest 설정 예시
- package.json
{
"scripts": {
"test": "jest"
},
"jest": {
"testEnvironment": "node",
"setupFilesAfterEnv": ["<rootDir>/jest.setup.js"],
"maxWorkers": 4
}
}
- jest.config.js
{
"scripts": {
"test": "jest"
},
"jest": {
"testEnvironment": "node",
"setupFilesAfterEnv": ["<rootDir>/jest.setup.js"],
"maxWorkers": 4
}
}
'내가해냄' 카테고리의 다른 글
"상태검사 1/2개 통과" (0) | 2024.07.15 |
---|---|
pm2 환경변수 설정 방법 (0) | 2024.07.15 |
특정 브랜치를 새로운 폴더명으로 clone 하는 git 명령어 (0) | 2024.07.08 |
로컬 DNS 캐시와 로컬 DNS 서버 (0) | 2024.07.02 |
HTTP 파이프라이닝 vs QUIC의 스트림 다중화 (0) | 2024.06.23 |