나는 Istanbul API에있는 각 클래스를 훑어 보았지만 "커버리지 객체"를 생성하는 방법을 찾을 수 없었습니다.이스탄불의 coverage.json 객체를 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
인스트루먼트 코드는 전혀 문제가되지 않습니다 :
const istanbul = require('istanbul');
const instrumenter = new istanbul.Instrumenter();
instrumenter.instrument(sourceCode, filename, (err, instrumentedCode) => {
console.log(instrumentedCode);
}
그러나 이것은 단지 계측 코드; 커버리지 오브젝트을 생성하기 위해 그것을 실행해야합니다. 그러나 나는 이것을 어떻게하는지 알 수 없다. 물론 나는 이스탄불에 밖으로 껍질과
istanbul cover filename.js
을 실행하고 발굴과 coverage.json
파일을 구문 분석,하지만 난하지이 좀 바꿔 싶어 수있다; 나는 메모리에있는 자바 스크립트 프로그램을 다루고 싶다.
Collector
및 Reporter
의 메소드와 같이 이스탄불 API의 많은 메소드가 적용 범위 객체를 처리 할 수 있지만 범위 객체가 이미 있다고 가정합니다. 내 질문은 처음에 커버리지 객체를 생성하는 방법이다. 나는 간단한 것을 놓치고 있다고 확신한다. 나는 Instrumenter.lastFileCoverage()
이 있다는 것을 알아 차렸다. 나는 것을 시도하고, 광고,이 같은 라인을 포함 제로 범위 개체를 가지고 : (포격없이)
statementMap:
{ '1': SourceLocation { start: [Object], end: [Object], skip: undefined },
'2': SourceLocation { start: [Object], end: [Object], skip: undefined },
내 질문은, 어떻게 메모리에하는 범위 개체를 생성 할 수있다를? 간단한 cover
방법이 누락 되었습니까?
나는이 질문을 게시하면서 _stackoverflow.com/q/39302198/831878의 복제본임을 알게되었습니다. 여기에 내 대답을 삭제하고 다른 질문에 대답했습니다. –