04-IStanbulコードオーバーライド率

1268 ワード

テストの時、私たちはいつもすべてのコードがテストされたかどうかに関心を持っています.
この指標を「コードオーバーライド率」(code coverage)と呼ぶ.測定次元は4つあります.
行オーバーライド率(line coverage):各行が実行されていますか?関数オーバーライド率(function coverage):各関数が呼び出されましたか?ブランチオーバーライド率(branch coverage):ifコードブロックごとに実行されますか?文オーバーライド率(statement coverage):各文が実行されましたか?
公式住所

スタート

  • 取付
  • $ npm install -g istanbul
    
  • 簡単な例は簡単なプログラムtestを書く.js
  • 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つが基準に達していない限り、間違って報告されます.