2016-12-08 9 views
0

私は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ファイルを解析し、私は支払う必要はありませんことができ;メモリにあるJavaScriptプログラムでカバレッジを実行したい。

CollectorReporterのメソッドのように、イスタンブールAPIの多くのメソッドでは、カバレッジオブジェクトを処理することができますが、カバレッジオブジェクトはすでに存在しているとみなされます。私の質問は、カバレッジオブジェクトを最初に生成する方法です。私は何かシンプルなものが欠けていると確信している私は、Instrumenter.lastFileCoverage()が存在することに気づいた。私の質問は、私が(砲撃せずに)メモリに、カバレッジ対象を生成することができますどのように、ある

statementMap: 
    { '1': SourceLocation { start: [Object], end: [Object], skip: undefined }, 
    '2': SourceLocation { start: [Object], end: [Object], skip: undefined }, 

:私がいること、および宣伝として、このような行を含むゼロカバレッジ・オブジェクトを持って試してみましたか?簡単な方法がありませんか?cover

+0

この質問を投稿すると、http://stackoverflow.com/q/39302198/831878の複製であることが判明しました。私はここで私の答えを削除し、他の質問に答えました。 –

答えて

0

公式のistanbul api repoのistanbul-lib-instrumentパッケージを使用してください。

これは、標準istanbul instrumenter'sの実装とは異なる方法lastFileCoverageを持っています。

私が取り組んでいるプロジェクトでテストしたところ、私の経験から、ドロップインの置き換え(apiのinstrumenter)でした。また、lastFileCoverageメソッドを試してみましたが、実際に処理された最後のファイルに対して完全なファイルカバレッジを提供しています。

関連する問題