테스트 커버리지란 시스템 또는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타낸 것이다. 즉, 수행한 테스트가 테스트의 대상을 얼마나 커버했는지를 나타낸다.
package.json에 커맨드로 "coverage"를 넣어줍니다.
// package.json
"scripts": {
"start": "nodemon app.js",
"test": "jest",
"coverage": "jest --coverage"
},
이렇게 작성한 후 터미널에 실행 시킵니다.
// npm
npm run coverage
// yarn
yarn run coverage
실행을 하게되면 테스트 결과와 함께 표가 출력됩니다.
-------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
-------------|---------|----------|---------|---------|-------------------
All files | 82.85 | 60 | 100 | 82.85 |
controllers | 53.84 | 0 | 100 | 53.84 |
user.js | 53.84 | 0 | 100 | 53.84 | 7-14
middlewares | 100 | 100 | 100 | 100 |
index.js | 100 | 100 | 100 | 100 |
models | 100 | 100 | 100 | 100 |
user.js | 100 | 100 | 100 | 100 |
services | 100 | 100 | 100 | 100 |
user.js | 100 | 100 | 100 | 100 |
-------------|---------|----------|---------|---------|-------------------
% Stmts (구문 비율)
% Branch (if문 등의 분기점 비율)
% Func (함수 비율)
% Lines (코드 줄 수 비율)
% Uncovered Line #s (커버되지 않은 줄 위치)
퍼센티지가 높을 수록 많은 코드가 테스트 되었다는 뜻이다. 여기선 명시적으로 테스트하고 require한 코드만 커버리지 분석이 된다는 점을 주의해야 한다.