답변:
코드 커버리지를위한 추가 라이브러리가 필요하며, 얼마나 강력하고 쉬운 이스탄불 인지 알 수 있습니다. 모카 테스트를 통과 한 후 다음을 시도하십시오.
npm install nyc
이제 nyc 명령을 기존 테스트 명령 앞에 두십시오.
{
"scripts": {
"test": "nyc mocha"
}
}
istanbul.cmd cover C:\Users\{UserName}\AppData\Roaming\npm\node_modules\mocha\bin\_mocha
$(npm bin)
은 정식 바로 가기 ./node_modules/.bin/
이며 bin 폴더의 istanbul/lib/cli.js
별칭 istanbul
입니다. 짧은 명령은 다음과 같습니다.$(npm bin)/istanbul cover $(npm bin)/_mocha -- --ui bdd -R spec -t 5000
istanbul cover node_modules/mocha/bin/_mocha -- -R spec
이제 ( 2020 ) 이스탄불 을 사용하는 기본 방법 은 "최신 명령 줄 인터페이스" nyc를 사용하는 것 입니다.
먼저 프로젝트에 설치하십시오.
npm i nyc --save-dev
그런 다음 npm 기반 프로젝트가있는 경우 package.json 파일 의 scripts
객체 내부에서 테스트 스크립트를 변경 하여 mocha의 코드 적용 범위를 실행하십시오. 테스트 .
{
"scripts": {
"test": "nyc --reporter=text mocha"
}
}
이제 테스트를 실행하십시오
npm test
테스트 출력 직후 콘솔에 다음과 같은 표가 표시됩니다.
그냥 사용
nyc --reporter=html
대신에 text
. 이제 내부에 보고서를 작성합니다 ./coverage/index.html
.
이스탄불은 광범위한 보고서 형식을 지원합니다. 그냥 그 살펴 보고 라이브러리 당신을 위해 가장 유용 할 수 있습니다. --reporter=REPORTER_NAME
원하는 각 형식 에 대한 옵션을 추가하십시오 . 예를 들어
nyc --reporter=html --reporter=text
콘솔과 html 보고서가 모두 있습니다.
다른 스크립트를 추가 package.json
하고 test
테스트 러너 (예 : 모카) 만 사용하여 스크립트를 그대로 두십시오 .
{
"scripts": {
"test": "mocha",
"test-with-coverage": "nyc --reporter=text mocha"
}
}
이제이 커스텀 스크립트를 실행하십시오
npm run test-with-coverage
코드 범위로 테스트를 실행합니다.
총 코드 범위가 90 % 미만이면 실패합니다.
nyc --check-coverage --lines 90
하나 이상의 파일의 코드 적용 범위가 90 % 미만이면 실패합니다.
nyc --check-coverage --lines 90 --per-file
--reporter=html
활성화되어 있지만 html 파일은 항상 비어 있습니다. 표의 헤더 만 덮지 않은 블록 또는 % 덮음 등에 대해 아무것도 표시되지 않습니다
Blanket.js도 완벽하게 작동합니다.
npm install --save-dev blanket
test / tests.js 앞에서
require('blanket')({
pattern: function (filename) {
return !/node_modules/.test(filename);
}
});
운영 mocha -R html-cov > coverage.html
istanbul cover node_modules/mocha/bin/_mocha
.