對此失敗進行分類處理:$ARGUMENTS
步驟
- 重現。僅執行失敗的檔案:
npx vitest run <file>(加上-t "<test name>"可縮小範圍)。如果未指定檔案,則執行npm test並選取第一個失敗。如果測試通過,請重複執行 5 次(npx vitest run <file> --repeat 4)來檢查是否為不穩定測試。 - 在閱讀程式碼之前,先讀取斷言差異與堆疊追蹤。說出失敗的預期結果。
- 找出變更:
git log --oneline -10 -- <source file> <test file>與git diff main...HEAD -- <files>。 - 分類原因,並說出是哪一類:
- 程式碼錯誤 — 測試是正確的;請修正原始碼。
- 過時測試 — 行為已刻意變更;更新測試並說明是哪個提交改變了它。
- 測試隔離 — 測試之間共享狀態(資料檔案、環境變數、時間、順序)。在此儲存庫中,檢查測試是否使用
useTempDataFile()並傳遞明確的now給createLink,而非依賴系統時鐘。 - 環境 — Node 版本、缺少安裝、僅在 CI 中出現的差異。
- 修正根本原因。絕不要跳過、刪除或弱化斷言來讓測試通過,也絕不要未經說明就編輯
data/seed.json來滿足測試。 - 重新執行檔案,然後執行
npm test。 - 回報:原因(一句話)、分類、修正方式與執行的命令。