Node.js 18で入った node:testでテストを実行しつつ nycを使ってcoverageを取る
Node.js v18がリリースされたようなので nycを使ってテストのカバレッジを取ってみました。
今回は設定等を簡略化するために、テストもテスト対象もCommonJSとします。
テストコードです。
const test = require('node:test') const assert = require('assert') const target = require('./target') test('my test', (t) => { assert.strictEqual(target(), "test"); });
テスト対象です。
module.exports = function() { if (false) { return "never" } return "test" }
nycを使いながら、テストを実行します。
npx nyc --exclude="**/*.spec.js" --reporter=html node tests/test.spec.js
htmlで見たいのでreporterを設定しました。
coverage/
配下にreportが吐かれているので開いた結果がこれです。
ちゃんと期待通りのカバレッジが取れていそうです。