tidy-tests 用于在实现或重构完成后整理遗留的测试。它不阻止工作中产生临时测试,而是在工作结束后清理:删除临时测试、删除或合并重复测试,并清理残留资源。它明确不扩大范围到一般测试质量改进或查找缺失测试。
工作模式:用户要求调查时不修改文件,只报告问题位置、判断依据和建议动作;用户要求修改时直接改动并报告结果;未给指令时沿用当前会话模式,无法判断则调查。
流程:确定范围(优先用户指定,否则仅覆盖本次工作新增或改动的测试及与改动行为直接相关的测试);建立依据(用户指令、规格、约定接口、每个测试的创建原因及当前保护的契约,不以实现或测试是否通过为唯一依据);删除或合并测试;清理残留(未使用的导入、夹具、辅助函数、mock、快照、仅测试文件,并把本次临时添加的 .only、.skip、retry、timeout 恢复原状);最后用项目定义的命令运行受影响测试,修复清理引入的缺陷并再次运行,报告每项改动原因与最终结果。
判断标准:临时测试(Throwaway Test)指为达到 Green 而创建、但已不再保护契约的测试;回归测试(Regression Test)指仍保护需验证契约的测试。整个用例是临时的则删除用例;临时断言混在回归用例中则只删断言。若证据不足,标记为候选并询问用户。重复测试(Redundant Test)指契约、场景、风险与验证角色完全重叠,或一个角色被无理由拆分;若各自保留不同角色则为互补测试(Complementary Test),重叠验证属于有价值冗余,应保留。
限制:不得借整理之名新增测试或查找缺失测试;不得改变产品行为、公共接口或约定的测试边界;不清理无关的既有测试代码或资源;未纳入版本控制的文件不删除,只作为候选报告。报告需按 Transience、Overlap、Residue 分类,列出范围、审查数量、结果、验证命令,以及保留项和需用户确认的候选。