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が吐かれているので開いた結果がこれです。

ちゃんと期待通りのカバレッジが取れていそうです。