SKILL ARTICLE / node-coverage-diff-review
Node.jsのカバレッジを、コード差分へ重ねる
数字を上げる前に、変更で確かめていない分岐を見つける。
Node.js Test Runnerのカバレッジイベントを変更後のコード差分へ重ね、変更した行・分岐のうち実行されていない箇所と関連テストを結び付けて、追加で確かめる候補を整理するSkill案です。
この記事で紹介するSkill案は、参考資料を読んだうえで私が考えたものです。参照先が提供・評価・推奨しているものではありません。
OVERVIEW → CAN DO → BUILD
知ったことをSkillづくりに活かす
構造化されたカバレッジイベントを変更後の差分へ重ねると、全体率では見えにくい未実行候補を、今回の追加・変更行に絞って探せる。
全体率を機械的に上げるのではなく、変更した振る舞いのうち未確認の箇所と次のテスト判断を根拠付きで残せる。
Node.jsのversion、コマンド、include/exclude、依存lockと導入結果、OS・環境変数・設定、テスト選択、順序・並列条件、source map条件が異なると、結果をコード変更の...
01 / OVERVIEW
資料の概要
Node.js 24.19.0(Krypton LTS、2026年8月3日公開)のTest Runner公式ドキュメントでは、`--experimental-test-coverage`を付けるとコードカバレッジを収集できると説明されています。この機能はStability 1(Experimental)です。Node.js本体と`node_modules`は既定で集計対象外で、対象のテストファイルも既定では除外されます。必要なファイルはinclude/excludeフラグで調整できます。
同じ資料は、specとtapが集計を表示し、lcov reporterが詳細レポートを生成することも示しています。ただし、reporterの正確な出力はNode.jsのversion間で変わり得るため、プログラムから依存せず、必要ならTestsStreamのイベントを使うよう明記されています。`test:coverage`イベントには、ファイル別の行・分岐・関数と実行回数が定義されています。この記事のSkill案はNode.jsが提供・評価・推奨するSkillではありません。公式イベントをコード差分のレビューへどう使うかは記事側の提案です。
02 / CAN DO
できるようになること
Skill案では、Node.jsのversionを固定し、通常のテスト成否とTestsStreamの`test:coverage`イベントを取得します。変更後の本番コードにあるgitの追加・変更行だけへ、同じ版で得た行・分岐の実行回数を重ね、実行回数が0の箇所を関連テスト候補と一緒に一覧化します。reporterの表示文字列やBRDA識別子を版間で照合しません。行移動、削除、生成コード、source mapで元ファイルとの対応を確認できない箇所は比較不能として分け、「新たな低下」とは断定しません。
変更前の結果を使う場合も、全体傾向を補足する材料に留めます。Node.jsのversion、コマンド、include/exclude、依存lockと導入結果、OS・環境変数・設定、テスト選択、順序・並列条件、source map条件が一致しない場合や、`test:coverage`イベントの必須項目を検証できない場合は比較を止めます。出力は、ファイルと行、変更内容、未実行候補、既存テスト、追加で確かめたい振る舞い、判断に足りない情報を分け、テスト追加の要否は人が決めます。
活かしやすい場面
- node:testを使うNode.jsプロジェクト
- PRごとに変更部分のテスト不足を点検したいチーム
- TestsStreamイベントとgit差分を同じレビュー材料にしたい場面
使う前に確認したい場面
- Node.js Test Runner以外の結果を同じ形式だと仮定する運用
- 異なるversionや実行条件の結果をそのまま比較する作業
- カバレッジ率だけで品質やリリース可否を決める場面
03 / BUILD
自分たちのSkill作成に活かせること
文章やコードをそのまままねるのではなく、自分たちのSkillに取り入れたい判断基準や工程の分け方を整理しました。
比較条件を先に固定する
Node.jsのversion、コマンド、include/exclude、依存lockと導入結果、OS・環境変数・設定、テスト選択、順序・並列条件、source map条件が異なると、結果をコード変更の影響と区別できません。Skillは実行前に条件を照合し、判断に影響する不一致なら比較不能として返します。
変更行と未実行箇所を重ねる
全体率の増減だけでは次の行動を選びにくいため、変更後のgit差分に含まれる本番コードと`test:coverage`イベントの行・分岐情報を重ねます。行移動やsource mapで対応が曖昧な箇所は推測せず、変更外の既存ギャップとともに別枠へ分けます。
テスト数ではなく振る舞いを提案する
未実行行を通すだけのテストを量産せず、その分岐で利用者から見える結果や失敗条件を言葉にします。生成するのはテスト候補と根拠までとし、追加や修正は人の確認後に行います。
04 / WORKFLOW
Skillにするときの流れ
- 01
条件を照合
Node.js版、コマンド、対象・除外、依存、環境、テスト選択、source map条件を記録する。
- 02
差分へ重ねる
`test:coverage`イベントの未実行行・分岐を、変更後の追加・変更行だけへ対応付ける。
- 03
確認候補を整理
関連テストと利用者から見える振る舞いを示し、追加判断を人へ渡す。
05 / TRY
試すときに使える依頼文
これは完成したSkillではありません。先に依頼文として試し、期待する結果が返ってくるかを確かめるための試作プロンプトです。
このPRを固定したNode.js版で通常テストと`test:coverage`イベントから確認してください。最初にコマンド、include/exclude、依存lockと導入結果、OS・環境変数・設定、テスト選択、順序・並列条件、source map条件を記録してください。変更後の追加・変更行だけに限定し、実行回数0の行または分岐、関連する既存テスト、追加で確かめたい振る舞い、対応不能な箇所を整理してください。reporter文字列やBRDAを版間で照合せず、テストはまだ書き換えないでください。
06 / BUILD BRIEF
試作するときの設計メモ
これは配布済みのSkillではありません。対象を小さく絞り、停止条件と評価ケースを足しながら確かめるための出発点です。
Node.js Test Runnerの通常テスト結果とTestsStreamの`test:coverage`イベントを、変更後のgit差分へ対応付けるSkillを作る。
最初にNode.js版、コマンド、include/exclude、依存lockと導入結果、OS・環境変数・設定、テスト選択、順序・並列条件、source map条件を記録し、判断に影響する不一致やイベントschema検証失敗なら停止する。
変更後の追加・変更行に重なる未実行行・分岐、関連テスト、確認したい振る舞い、根拠、対応不能事項を定型で出力する。reporter表示やBRDAを版間で照合せず、行移動・削除・生成コード・source mapの曖昧さから新規低下を推測しない。
テストの追加・変更、閾値変更、公開やマージは人の承認なしに行わない。
07 / WATCHOUTS
人が確認するところ
- 信頼できないリポジトリのテストは、秘密情報や外部サービスへアクセスできる環境で自動実行しません。
- カバレッジはコードが実行された事実であり、仕様適合、テストの正しさ、障害がないことを保証しません。
- Experimental機能のため、Node.js版を固定し、`test:coverage`イベントの必須項目を検証できない場合は処理を止めます。