답변:
Jest 21.2.1을 사용할 때 명령 행에서 코드 적용 범위 --coverage
를보고 Jest 스크립트 로 전달 하여 적용 범위 디렉토리를 작성할 수 있습니다 . 다음은 몇 가지 예입니다.
Jest를 로컬로 설치하는 경향이 있는데,이 경우 명령은 다음과 같습니다.
npx jest --coverage
Jest를 전 세계에 설치 한 경우에도 작동한다고 가정합니다 (확인하지는 않았지만).
jest --coverage
매우 드문 문서가 여기 있습니다
coverage / lcov-report 디렉토리를 탐색 할 때 브라우저에로드 할 수 있는 index.html 파일을 찾았습니다 . 명령 행에 인쇄 된 정보와 추가 정보 및 일부 그래픽 출력이 포함되었습니다.
node_modules
via 에서 실행 파일을 사용하십시오 ./node_modules/.bin/jest --coverage
. 패키지 이름이 package.json에있는 한 정확한 버전의 jest로 실행을 보장 할 수 있습니다.
업데이트 : 2018 년 7 월 20 일-coverageReporters에 대한 링크 및 업데이트 된 이름이 추가되었습니다.
업데이트 : 8/14/2017-이 답변은 완전히 구식입니다. Jest 문서를 지금보십시오. 이 작업을 수행하는 방법에 대한 공식적인 지원 및 문서가 있습니다.
@hankhsiao는 이스탄불이 Jest와 함께 일하는 포크 리포지토리를 가지고 있습니다. 이것을 개발자 의존성에 추가하십시오
"devDependencies": {
"jest-cli": "git://github.com/hankhsiao/jest.git"
}
또한 package.json jest 항목에서 적용 범위를 활성화하고 원하는 형식을 지정할 수도 있습니다. (html은 꽤 나쁜 엉덩이입니다).
"jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"],
}
coverageReporters에 대한 Jest 문서 를 참조하십시오 (기본값은 )["json", "lcov", "text"]
또는 --coverage
jest를 호출 할 때 추가하십시오 .
최근 에이 질문을 조사하는 사람은 특히 테스트를 사용 npm
하거나 yarn
직접
현재 구성 옵션을 변경할 필요가 없습니다.
당으로 농담 공식 웹 사이트 , 당신은 커버리지 보고서를 생성하려면 다음을 수행 할 수 있습니다
jest --
의 --coverage
인수를 전달하기 전에 넣어야합니다
npm test -- --coverage
--coverage
직접 호출 --
하지 않으면 작동하지 않습니다.
--coverage
jest 의 인수를 직접 전달할 수 있습니다
yarn test --coverage
--watch
설정 을 사용하고 싶을 것입니다 .
package.json
.
누군가가 나에게 문제가 해결되지 않았다고 말한 것처럼 이전의 대답을 무시하십시오.
새로운 답변 :
1) 최신 농담을 확인하십시오 (v 0.22) : https://github.com/facebook/jest
2) 페이스 북 팀은 이스탄불을 커버리지 보고서의 일부로두고 직접 사용할 수 있습니다.
3) jest를 실행하면 콘솔에서 범위 보고서를 얻을 수 있으며 jest에서 설정 한 루트 폴더 아래에서 json 및 html 형식의 범위 보고서를 찾을 수 있습니다.
4) 참고로, npm에서 설치하면 최신 버전을 얻지 못할 수 있습니다. 따라서 github을 먼저 시도하고 적용 범위가 필요한지 확인하십시오.
기존 답변 :
같은 문제가 있습니다. 짧은 대답은 다음 Istanbul
과 Jest
같습니다.
자세한 내용은 다음 페이지를 확인하십시오.
https://github.com/facebook/jest/issues/101
jest는 네이티브 코드의 V8 컨텍스트에서 JS 스크립트를 실행하는 contextify를 사용하므로 이스탄불의 require 및 vm.runInThisContext 후크를 모두 무시합니다. 따라서 표준 후크 가능 node.js 함수가 사용되지 않고 모든 테스트가 자체 샌드 박스에서 실행되고 적용 범위 오브젝트를 숨길 수있는 글로벌이 없기 때문에 사전 계측 파일이 도움이되지 않으므로 이스탄불 커버가 작동하지 않습니다.
@Ciro Costa : config.collectCoverage
'TODO'기능이므로 작동하지 않습니다. 소스 코드를 확인하십시오.
나는 같은 문제가 있었고 아래와 같이 수정했다.
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
테스트를 작성한 후 npm run jest-coverage 명령을 실행하십시오. 루트 디렉토리에 커버리지 폴더가 생성됩니다. /coverage/icov-report/index.html에는 코드 범위에 대한 html보기가 있습니다.
행복한 코딩!
Chutzpah 사용해 보기 . 방금 사용했습니다. 그리고 Visual Studio에 통합하는 방법에 대해 블로그했습니다.
이것이 내가 Chutzpah로 코드 커버리지를 수행 한 방법입니다 : http://francorobles.wordpress.com/2014/09/14/code-coverage-with-chutzpah/
require
.