对此失败进行分类:$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()并向createLink传递显式的now,而不是依赖时钟。 - 环境 —— Node 版本、缺少安装、仅 CI 存在的差异。
- 修复根本原因。切勿仅仅为了通过测试而跳过、删除或削弱断言,也不要未经说明就编辑
data/seed.json来满足测试。 - 重新运行该文件,然后运行
npm test。 - 报告:原因(一句话)、分类、修复方法和执行的命令。