이스탄불은 코드 적용 범위를 확인하기 위해 nyc을 사용할 것을 권장합니다. 다음과 같은 접근 방식을 제안합니다 :
nyc mocha
이 명령을 실행하면 범위 보고서가 생성됩니다. 그러나 몇 가지 함정이 있습니다.
기본적으로 mocha
은 test
폴더의 테스트를 찾고 있습니다. 그것을 무시하기 위해, 우리는 다음과 같은 파일 mocha.opts
우리 자신의 경로를 설정해야합니다 :
spec/unit/back-end/**/*.spec.js
또 다른 문제가 기본적으로 nyc
검사입니다 :
nyc mocha --opts ./mocha.opts
그리고 mocha.opts
예를 들어 같은 코드를 포함 귀하의 질문에 대해서만 필요한 파일의 범위를 커버합니다. 해결 방법은 nyc
에 대한 두 가지 옵션을 설정하는 것입니다 (test를 npm 스크립트로 실행하므로 package.json에 옵션을 설정합니다). 여기에 코드입니다 :
"nyc": {
"all": true,
"include": [
"routes/*.js",
"routes/**/*.js",
"models/*.js"
]
},
"scripts": {
"mocha": "nyc mocha --opts ./mocha.opts",
}
을 달성하기 위해 또 다른 방법은 없습니다 include
을 설정하는 것입니다,하지만 순서 exclude
옵션 부적절한 파일을 확인 범위에서 제외 할 수 있습니다. 이상한 일이지만 유일한 옵션 인 all
이 작동하지 않으면 include
또는 exclude
옵션이 필요합니다. nyc --help
을 통해 nyc
옵션에 대해 자세히 알아볼 수 있습니다.
P. 나는 nyc
과 mocha
을 깊이 알지 못한다. 나는 단지 내 경험에 기초하고있다.
이 스레드가 도움이 될 수도 있습니다. http://stackoverflow.com/questions/22702578/full-gulp-istanbul-coverage-report/26418759#26418759 (하지만 꿀꺽 마심을 사용해야합니다.) gulp없이 includeUntested 옵션을 사용하면 도움이됩니다 (https://github.com/SBoudrias/gulp-istanbul#includeuntested). – Anastasia
유망 해 보입니다. 감사합니다! – Seer