カバレッジツールnyc+mochaモジュールの使い方

カバレッジツールnyc+mochaモジュールの使い方

カバレッジツールでnycと言うモジュールがあります。

npm install --save-dev nyc mocha

でモジュールをインストールします。

npx nyc mocha --recursive --timeout 10000

でテストした結果のカバレッジレポートを出力します。(.nycrc.jsonがあれば)

package.jsonのscripts

npmスクリプトでnyc+mochaを実行する場合はnpx nyc mocha --recursiveでOKです。

–recursiveオプションを付けることによって、テストコードのディレクトリを再帰的に検索してレポート出力してくれます。
git-bashなら&&はいらないかもしれませんが、コマンドプロンプトなら必要なので&&をつけて出力されました。

なぜnpm test(npm run test)を付けるかと言うと、このテスト結果に対してカバレッジレポートが出力されるためです。

特定のファイルとディレクトリを除外する

カバレッジレポートが全て必要なわけではなく、srcフォルダ以下の拡張子がjsファイルのみ、等と言う時は、特定のファイルとディレクトリを除外することができます。

package.jsonに以下のように記述します。記述方法はglobに対応しています。

{
  "nyc": {
    "exclude": [
      "**/*.spec.js",
      "!**/*.test.js"
    ]
  }
}

先頭に!マークをつけると除外しないと言う意味になります。

.nycrc.json

.nycrc.jsonというファイルを作成してそのJSONファイルに上記JSONを記述しても良いです。

.nycrc.jsonのサンプルです。これでreportというフォルダ配下にカバレッジレポートをhtml形式で出力してくれます。

{
  "nyc": {
    "all": true,
    "check-coverage": true,
    "include": [
    ],
    "exclude":[
    ]
  },
  "reporter": "html",
  "report-dir": "report",
  "temp-dir": ".nyc_output",
  "sourceMap": true
}

カバレッジツールnycモジュールの使い方

es module対応していないようなので、ecmascriptでコードを書いている場合は、c8モジュールを使った方がよさそうです。

参考サイト

nyc
the Istanbul command line interface. Latest version: 15.1.0, last published: 3 years ago. Start using nyc in your projec...
c8
output coverage reports using Node.js' built in coverage. Latest version: 8.0.1, last published: 22 days ago. Start usin...

コメント

タイトルとURLをコピーしました