mcpField
N
node-testing

node-testing

github.com/paldomテスト・品質157 回インストール7 週間前に更新
リポジトリ

node-testing について

Node.js のテスト基盤を整えるスキルです。実行ランナーやカバレッジ基準を明示したい開発者向けに、ランナー選定、モック、React テスト、検証手順を案内します。

主な機能

  1. 01Vitest と node:test の選定指針
  2. 02明示的なランナー設定
  3. 03実行を失敗させるカバレッジ基準
  4. 04React Testing Library のテストパターン
  5. 05境界に限定したモック指針

活用シーン

  1. 01Node.js プロジェクトのランナー選定
  2. 02Jest テストの Vitest への移行
  3. 03カバレッジ基準の強制
  4. 04React コンポーネントの動作検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/paldom/node-skills --skill node-testing

インストール後、Claude Code で/node-testingを入力して読み込まれたか確認します。

同梱ファイルevals/evals.jsonreferences/testing-playbook.md

詳細

node-testing

緑色になることに意味があるテスト基盤を構築します。明示的なランナー設定、ビルドを飾るだけでなく失敗させるカバレッジ、そして嘘をつかないモックを実現します。このスキルで解決する問題:モデルがレガシーな Jest 設定をデフォルトで使う、誰もゲートに使わないカバレッジレポートを作成する、コンポーネントテストを不安定な疑似 E2E に引き延ばす。

使用しない場合

  • E2E/実ブラウザーのフロー → このリポジトリの対象外です。Playwright とそのドキュメントを案内してください(明示的な非目標です)。
  • Lint → node-lint、tsconfig → node-typescript。
  • GitHub Actions でジョブ/マトリックスを配線する場合 → node-ci(このスキルでは何を実行するかを定義し、そちらではどこで実行するかを定義します)。

ワークフロー

  1. references/testing-playbook.md の選定表に従ってランナーを選びます。
    • Vitest は、複雑な要件がある場合に使います。TS/JSX のネイティブサポート、ウォッチ時の使いやすさ、スナップショット、モック機能、React の作業に対応しています。
    • node:test は、依存関係ゼロであること自体が特徴となる、依存関係のない純粋な Node ライブラリに使います。その際、トレードオフ(TS 用ローダー、使い勝手の劣るウォッチ/スナップショット機能)を明記してください。
    • Jest からのモダナイズでは、Vitest への移行をデフォルトの経路とします(大半のスイートで API 互換性があります)。移行手順はプレイブックを参照してください。
  2. 明示的な設定を記述します(バージョンごとのデフォルトに依存しません):環境(node/jsdom/トレードオフを考慮したブラウザーモード)、グローバルの方針、セットアップファイル。
  3. カバレッジをゲートにします:v8 プロバイダーと、実行を失敗させる明示的な thresholds を使います。方針:カバレッジは不足箇所を見つけるものであり、品質を証明するものではありません。見栄えだけの全体数値を追うより、PR の差分を重視する規律を優先してください。浅いテストを無理に増やすために、しきい値を引き上げてはいけません。
  4. React:Vitest では React Testing Library と user-event を使います。実装の詳細ではなく、ロールやテキストを通じて動作をテストしてください。例にはおもちゃのコンポーネントではなく、リポジトリ内の実際のコンポーネントを使ってください。
  5. モックの規律:内部モジュールではなく、境界(ネットワーク、クロック、fs)をモックします。フェイクタイマーについては、プレイブックに記載された注意点を確認してください。
  6. 検証:ローカルでスイート全体が成功すること、しきい値未達時にカバレッジゲートが確実に失敗することを確認します(1 度は実証してください)。スクリプト(test、test:coverage)を配線します。

出力仕様

選定理由を明記したランナー、コミット済みの明示的な設定、CI で失敗するカバレッジしきい値、設定を実証する実際のテストを少なくとも 1 つ(実際のコンポーネントをレンダリングする/実際のモジュールを実行するもの)、配線済みのスクリプトを用意します。不安定さが相談内容だった場合は、不安定なテストのトリアージ用チェックリストを適用します。

注意点

  • 最新の Vitest では、AST 再マッピングを使った v8 カバレッジの精度は istanbul と同等です。バージョンごとに確認し、メジャーバージョン更新時には再検証してください。
  • jsdom はブラウザーではありません。実際のレイアウト、ナビゲーション、ワーカーに依存するものは、より重いユニットテスト用モックではなく Playwright の対象です。
  • vi.mock は巻き上げられます。外側の変数を参照するファクトリー関数は、気付かないうちに壊れることがあります。安全なパターンはプレイブックを参照してください。
  • --changed によるフィルタリング後にスイートが成功しても、スイート全体が成功したことにはなりません。マージのゲートには全件実行を使います(設定箇所:node-ci)。

ファイル

  • references/testing-playbook.md — ランナー選定表、明示的な設定、カバレッジゲート、RTL のパターン、モックの注意点、不安定なテストのトリアージ。

コメント