04-IStanbulコードオーバーライド率
1268 ワード
テストの時、私たちはいつもすべてのコードがテストされたかどうかに関心を持っています.
この指標を「コードオーバーライド率」(code coverage)と呼ぶ.測定次元は4つあります.
行オーバーライド率(line coverage):各行が実行されていますか?関数オーバーライド率(function coverage):各関数が呼び出されましたか?ブランチオーバーライド率(branch coverage):ifコードブロックごとに実行されますか?文オーバーライド率(statement coverage):各文が実行されましたか?
公式住所
取付 簡単な例は簡単なプログラムtestを書く.js
プログラムを実行し、coverageディレクトリの下でレポートを生成します.
完璧なカバー率はもちろん100%ですが、現実的には達成しにくいです.カバー率が基準に達しているかどうかを測定する敷居が必要です.istanbul check-coverageコマンドは、現在のコードが基準に達しているかどうかを確認しながら、敷居を設定します.
上のコマンドで文のオーバーライド率を設定する敷居は90%です.
また、絶対値の敷居を設定することもできます.たとえば、1つの文が上書きされていないことを許可します.
上のコマンドでは、5文、3 ifコードブロック、100%関数の3つのオーバーライド敷居が設定されています.注意、この3つの敷居は「と」(and)の関係であり、1つが基準に達していない限り、間違って報告されます.
この指標を「コードオーバーライド率」(code coverage)と呼ぶ.測定次元は4つあります.
行オーバーライド率(line coverage):各行が実行されていますか?関数オーバーライド率(function coverage):各関数が呼び出されましたか?ブランチオーバーライド率(branch coverage):ifコードブロックごとに実行されますか?文オーバーライド率(statement coverage):各文が実行されましたか?
公式住所
スタート
$ npm install -g istanbul
var test1 = "Hello ";
var test2 = "World! ";
console.info(test1 + test2);
function myfunc(){
console.info('this is a test.');
}
プログラムを実行し、coverageディレクトリの下でレポートを生成します.
$ istanbul cover test.js
オーバーライド率の設定
完璧なカバー率はもちろん100%ですが、現実的には達成しにくいです.カバー率が基準に達しているかどうかを測定する敷居が必要です.istanbul check-coverageコマンドは、現在のコードが基準に達しているかどうかを確認しながら、敷居を設定します.
$ istanbul check-coverage --statement 90
上のコマンドで文のオーバーライド率を設定する敷居は90%です.
$ istanbul check-coverage --statement -1
また、絶対値の敷居を設定することもできます.たとえば、1つの文が上書きされていないことを許可します.
$ istanbul check-coverage --statement -5 --branch -3 --function 100
上のコマンドでは、5文、3 ifコードブロック、100%関数の3つのオーバーライド敷居が設定されています.注意、この3つの敷居は「と」(and)の関係であり、1つが基準に達していない限り、間違って報告されます.