Jest에는 다양한 옵션이 존재하는데, 정확한 명칭은 Jest CLI 옵션이라고 한다.
다양한 옵션 중에 감시 모드 옵션인 watch/watchAll에 대해 알아보고자 한다.
Jest CLI 옵션 사용 방법
watch/watchAll 옵션에 대해 알아보기 전에 우선 Jest CLI 옵션을 사용할 줄 알아야 하니 사용방법에 대해 간단하게 알고 넘어가자.
npm 스크립트와 함께 사용
npm test 명령어와 같이 사용하게 되면 npm test와 Jest 인수 사이에 --를 삽입하여 명령 줄 인수를 계속 사용할 수 있다.
npm test -- -h
npm test -- --watchAll
실제로 -h 헬프 옵션을 사용해보면 다양한 옵션들이 출력되는 것을 볼 수 있는데, 그중에 --watch와 --watchAll을 볼 수 있다.
* 좀 더 자세한 내용은 공식 문서를 확인해보도록 하자.
package.json에서 설정
이 방법은 그냥 package.json에 test 스크립트 옵션을 주는방법인데 이 옵션이 고정되어버리는 단점은 있으나 매번 입력할 필요가 없어 편하다는 장점이 있다.
{
"name": "unit-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest --watchAll"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@types/jest": "^29.0.3",
"jest": "^29.0.3"
}
}
scripts 프로퍼티에 jest옵션을 주면 해당 옵션상태로 계속 실행된다.
Watch / WatchAll 옵션
jest --watch #runs jest -o by default
jest --watchAll #runs all tests
감시 모드를 사용하면 특정 테스트 세트에 중점을 둘 파일의 이름 또는 경로를 지정할 수 있다.
--watch
파일이 변경되었는지 확인하고 변경된 파일과 관련된 테스트를 다시 실행하는 옵션이다.
여기서 중요한 점은 "변경된 파일과 관련된 테스트"만 실행한다는 점이다.
이 변경된 파일이라는 것을 어떻게 판별하냐면, 위에서 설명한것 처럼 --watch 옵션은 jest -o로 테스트를 실행하게 되는데, 여기서 -o는 hg나 git에서 변경된 파일만 실행하는 옵션이다.
그래서 git을 사용할 경우 일반적으로 commit된 상태이면서 변경되지 않은 파일의 경우 실행이 안되며, 만약 변경된 파일과 관련이 있다고 판별이 날 경우 그 테스트만 자동 실행된다.
--watchAll
변경 사항이 있는지 파일을 관찰하고 변경 사항이 있을 때 모든 테스트를 다시 실행하는 옵션이다.
계속 전체적인 테스트를 실행하는 점에서 --watch와 반대이다.
프로젝트 규모가 작을때는 상관없겠지만, 만약 프로젝트 규모가 커지게 된다면 --watch 옵션을 주로 사용한다.
댓글