关于 test-fixing
通过归类相关错误、处理根因并逐组验证来诊断和修复失败测试的技能,适合处理本地或 CI 测试问题的开发者。
主要功能
- 01运行完整测试套件
- 02按原因归类失败
- 03按优先级修复问题
- 04验证指定测试和回归
适用场景
- 01修复重构后的测试失败
- 02处理 CI 测试错误
- 03逐组解决多项测试失败
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mhattingpete/ claude-skills-marketplace --skill test-fixing安装后在 Claude Code 中输入/test-fixing确认已加载。
详细介绍
修复测试
使用智能分组策略,系统地找出并修复所有失败的测试。
适用场景
- 明确要求修复测试(“修复这些测试”“让测试通过”)
- 报告测试失败(“测试失败了”“测试套件坏了”)
- 完成实现后希望测试通过
- 提到 CI/CD 测试失败
系统化方法
1. 初始测试运行
运行 make test,找出所有失败的测试。
分析输出,了解:
- 失败总数
- 错误类型和模式
- 受影响的模块/文件
2. 智能错误分组
按以下方式对相似的失败进行分组:
- 错误类型:ImportError、AttributeError、AssertionError 等
- 模块/文件:同一文件导致的多个测试失败
- 根本原因:缺少依赖、API 变更、重构影响
按以下优先级处理各组:
- 受影响的测试数量(影响最大者优先)
- 依赖顺序(先修复基础设施,再处理功能)
3. 系统化修复流程
从影响最大的一组开始,逐组处理:
-
找出根本原因
- 阅读相关代码
- 使用
git diff检查近期变更 - 理解错误模式
-
实施修复
- 使用 Edit 工具修改代码
- 遵循项目规范(参见 CLAUDE.md)
- 尽量只做最小且有针对性的更改
-
验证修复
- 运行该组的部分测试
- 使用 pytest 标记或文件模式:
uv run pytest tests/path/to/test_file.py -v uv run pytest -k "pattern" -v - 确认该组测试通过后再继续
-
处理下一组
4. 修复顺序策略
先处理基础设施:
- 导入错误
- 缺少依赖
- 配置问题
再处理 API 变更:
- 函数签名变更
- 模块重组
- 变量/函数重命名
最后处理逻辑问题:
- 断言失败
- 业务逻辑错误
- 边缘情况处理
5. 最终验证
修复所有分组后:
- 运行完整测试套件:
make test - 确认没有引入回归问题
- 检查测试覆盖率是否保持完整
最佳实践
- 一次只修复一组
- 每次修复后运行针对性测试
- 使用
git diff了解近期变更 - 寻找失败中的模式
- 当前一组通过后再继续处理下一组
- 保持更改精简且有针对性
示例工作流
用户:“重构后测试失败了”
- 运行
make test→ 找到 15 个失败项 - 对错误分组:
- 8 个 ImportError(模块已重命名)
- 5 个 AttributeError(函数签名已变更)
- 2 个 AssertionError(逻辑错误)
- 先修复 ImportError → 运行部分测试 → 验证
- 修复 AttributeError → 运行部分测试 → 验证
- 修复 AssertionError → 运行部分测试 → 验证
- 运行完整测试套件 → 全部通过 ✓
评论
支持 Markdown