私は自分のNodeJSアプリケーションをテストするためにMochaを使っています。コードカバレッジ機能の使い方を理解することができません。グーグルしようとしましたが、適切なチュートリアルが見つかりませんでした。助けてください。
コードカバレッジのために追加のライブラリが必要です、そしてあなたはどれほど強力で簡単であるかによってあなたは吹き飛ばされるでしょう istanbul です。モカテストに合格したら、次のことを試してください。
npm install nyc
今、あなたの既存のテストコマンドの前に単にコマンドnycを置きなさい、例えば:
{
"scripts": {
"test": "nyc mocha"
}
}
さて、(2019)を使用するのに好ましい方法 istanbul は、そのを使用することです。コマンドラインインタフェース "nyc 。
まず、プロジェクトにそれをインストールします。
npm i nyc --save-dev
次に、npmベースのプロジェクトがある場合は、 mocha テストのコードカバレッジを実行するために、 package.json ファイルのscripts
オブジェクト内のテストスクリプトを変更します。
{
"scripts": {
"test": "nyc --reporter=text mocha"
}
}
テストを実行しましょう
npm test
テストが出力された直後に、コンソールに次のようなテーブルが表示されます。
ただ使う
nyc --reporter=html
text
の代わりに。これで./coverage/index.html
内にレポートが作成されます。
イスタンブールは幅広いレポートフォーマットをサポートしています。その レポートライブラリ を見て、あなたにとって最も役に立つものを見つけてください。各フォーマットに--reporter=REPORTER_NAME
オプションを追加するだけです。たとえば、
nyc --reporter=html --reporter=text
コンソールとHTMLレポートの両方があります。
package.json
に別のスクリプトを追加し、test
スクリプトにはテストランナーだけを残してください(例:mocha)。
{
"scripts": {
"test": "mocha",
"test-with-coverage": "nyc --reporter=text mocha"
}
}
今このカスタムスクリプトを実行
npm run test-with-coverage
コードカバレッジでテストを実行する。
合計コードカバレッジが90%未満の場合は失敗します。
nyc --check-coverage --lines 90
少なくとも1つのファイルのコードカバレッジが90%未満の場合は失敗します。
nyc --check-coverage --lines 90 --per-file
Blanket.jsも完璧に動作します。
npm install --save-dev blanket
test/tests.jsの前に
require('blanket')({
pattern: function (filename) {
return !/node_modules/.test(filename);
}
});
mocha -R html-cov > coverage.html
を実行する