테스트 커버리지
개인적으로 많이 궁금했던게 있습니다.
간혹 이력서에 테스트 커버리지를 몇퍼센트에서 몇퍼센트까지 올렸다.
라는 문구를 넣으시는 분들을 본적이 있는데요
테스트커버리지라는게 대체 뭔데? / 테스트커버리지를 어떻게 측정한건데?
라는 생각이 들었지만.. 따로 찾아보지는 않았었습니다.
https://www.daleseo.com/jest-coverage/
Jest로 테스트 커버리지 수집하기
Engineering Blog by Dale Seo
www.daleseo.com
근데 위 글을 참고해보니 테스트 커버리지를 측정하는 옵션을
jest에서 이미 제공해주고 있었더라구요
흥미로워서 바로 따라해봤는데 몇가지 문제가 있었습니다.
쓸데없는 파일까지 전부 측정되잖아!!
module.exports = {
collectCoverageFrom: ['**/*.[jt]s?(x)', '!**/*.stories.[jt]s?(x)'],
};
이런 옵션을 jest.config.js에서 설정해주게 되면
js / jsx / ts / tsx 확장자를 가진 모든 파일을 검사하게되는 결과를 낳습니다.
이게 next.js를 이용할때에는 치명적인 문제가 되는데요
바로 검사할 필요가 없는 캐싱파일들까지 전부 커버리지 계산에 들어가버린다는 것입니다.
아주 불필요한 데이터니까 지워주는게 좋겠는데요
지우는 방법은 !** 키워드를 이용해서 제외를 시켜주는 것입니다.
위 코드에서는 stories 부분을 보면되겠네요
collectCoverageFrom: [
"**/*.[jt]s?(x)",
"!**/*.stories.[jt]s?(x)",
"!**/*webpack*",
"!**/*.hot-update*",
"!**/.next/**",
],
테스트 커버리지 실행 결과를 보면서 쓸데없이 검사되는 파일들을 파악하고
검사하지 않도록 옵션을 추가해줬습니다.
coverageThreshold: {
"./pages/": {
statements: 20,
branches: 20,
functions: 25,
lines: 20,
},
"./core/": {
statements: 95,
branches: 90,
functions: 95,
lines: 90,
},
},
추가로 jest.config.js에 이런 쓰레숄드 옵션을 주면
현재 커버리지와 목표커버리지를 한번에 볼 수 있는데요
퍼센티지로 보게되니 열심히해야겠다는 생각이 많이 듭니다...
하하...
반응형
'testcode' 카테고리의 다른 글
간단했던 모노레포 toBeInDocument 이슈 해결 (0) | 2024.01.07 |
---|---|
cypress와 jest 를 함께 사용하려하면 conflict이 날 수 있다. (2) | 2023.11.24 |
react-query, zustand test jest 환경설정 승리한 썰 푼다 (2) | 2023.10.26 |
[jest] jest에서 안쓰는 import가 있으면 테스트 에러를 내요.. (0) | 2023.08.02 |
Vite Typescript 환경에서 Jest 설치하기 (1) | 2023.07.30 |