用途
Test Fixing 是一个用于系统性修复失败测试的技能,旨在帮助开发者高效地识别并解决测试套件中的失败用例。它适用于以下场景:用户明确要求修复测试(如“修复这些测试”“让测试通过”);用户报告测试失败(如“测试失败了”“测试套件坏了”);用户完成实现后希望测试通过;用户提及因测试导致的 CI/CD 失败。
主要能力
该技能提供了一套系统化的修复流程,核心能力包括:
-
初始测试运行:运行
make test识别所有失败测试,并分析输出中的失败总数、错误类型与模式、受影响的模块和文件。 -
智能错误分组:按错误类型(ImportError、AttributeError、AssertionError 等)、模块/文件(同一文件导致多个测试失败)、根本原因(缺失依赖、API 变更、重构影响)对相似失败进行分组。分组优先级依据受影响测试数量(影响最大者优先)和依赖顺序(先修复基础设施,再修复功能)。
-
系统性修复流程:对每个分组(从影响最大者开始)依次执行:定位根本原因(阅读相关代码、用
git diff检查近期变更、理解错误模式);实施修复(使用 Edit 工具修改代码、遵循项目约定如 CLAUDE.md、保持最小化聚焦改动);验证修复(运行该分组的测试子集,可使用 pytest 标记或文件模式,如uv run pytest tests/path/to/test_file.py -v或uv run pytest -k "pattern" -v,确保该分组通过后再进入下一组)。 -
修复顺序策略:优先修复基础设施问题(导入错误、缺失依赖、配置问题),然后是 API 变更(函数签名变更、模块重组、重命名变量/函数),最后是逻辑问题(断言失败、业务逻辑缺陷、边界情况处理)。
-
最终验证:所有分组修复完成后,运行完整测试套件
make test,验证无回归,并检查测试覆盖率保持完整。
使用方式
该技能以工作流方式使用,典型示例如下:
用户说:“重构后测试失败了”。
- 运行
make test→ 识别出 15 个失败。 - 分组错误:8 个 ImportError(模块重命名)、5 个 AttributeError(函数签名变更)、2 个 AssertionError(逻辑缺陷)。
- 先修复 ImportError → 运行子集 → 验证。
- 修复 AttributeError → 运行子集 → 验证。
- 修复 AssertionError → 运行子集 → 验证。
- 运行完整套件 → 全部通过 ✓。
适用场景
- 重构后测试套件出现大量失败,需要系统化修复。
- CI/CD 流水线因测试失败而中断,需要快速定位并解决。
- 完成新功能实现后,希望确保现有测试全部通过。
- 测试失败原因多样(导入错误、API 变更、逻辑缺陷混合),需要按优先级有序处理。
限制
- 该技能依赖
make test命令来运行测试,若项目未配置该命令则可能无法直接使用。 - 修复过程中使用 Edit 工具进行代码修改,需要项目具备可编辑的代码环境。
- 遵循项目约定(如 CLAUDE.md),若项目无相关约定文件,则需依赖通用最佳实践。
- 技能本身不提供测试框架的安装或配置,需项目已具备可运行的测试环境。
- 关于该技能的具体收费、价格、平台支持范围等信息,资料中暂未提供。