この障害をトリアージしてください: $ARGUMENTS
手順
- 再現する。 失敗しているファイルのみを実行:
npx vitest run <file>(必要に応じて-t "<テスト名>"を追加して絞り込み)。ファイルが指定されていない場合はnpm testを実行し、最初の失敗を選びます。パスした場合は、5回実行(npx vitest run <file> --repeat 4)してフレーキネス(不安定性)を確認します。 - コードを読む前にアサーション差分とスタックトレースを読む。 失敗している期待値を特定します。
- 変更内容を確認する:
git log --oneline -10 -- <ソースファイル> <テストファイル>とgit diff main...HEAD -- <ファイル>を実行します。 - 原因を分類し、該当するものを明示する:
- コードバグ — テストは正しいので、ソースを修正します。
- 古いテスト — 動作が意図的に変更されたので、テストを更新し、どのコミットで変更されたかを示します。
- テスト分離 — テスト間で共有状態(データファイル、環境変数、時間、実行順序)がある。このリポジトリでは、テストが
useTempDataFile()を使用し、時計に頼らずcreateLinkに明示的なnowを渡していることを確認します。 - 環境 — Nodeバージョン、インストール不足、CIのみの違い。
- 根本原因を修正する。 テストを通すためだけにアサーションをスキップ、削除、緩和してはならず、明示せずに
data/seed.jsonを編集してはなりません。 - ファイルを再実行し、次に
npm testを実行する。 - 報告する: 原因(一文)、分類、修正内容、実行したコマンドを報告します。