测试修复Skill test-fixing

这个技能用于系统性识别和修复软件测试中的失败测试,通过智能错误分组提高修复效率,适用于CI/CD流程和自动化测试。关键词:测试修复、软件测试、CI/CD、自动化测试、智能错误分组。

测试 0 次安装 0 次浏览 更新于 3/21/2026

名称: 测试修复 描述: 运行测试并使用智能错误分组系统性修复所有失败的测试。当用户要求修复测试、提及测试失败、运行测试套件并出现失败,或请求使测试通过时使用。

测试修复

系统性识别和修复所有失败的测试,使用智能分组策略。

何时使用

  • 明确要求修复测试(“修复这些测试”,“使测试通过”)
  • 报告测试失败(“测试失败”,“测试套件损坏”)
  • 完成实现并希望测试通过
  • 提及由于测试导致的CI/CD失败

系统方法

1. 初始测试运行

运行 make test 以识别所有失败的测试。

分析输出:

  • 失败总数
  • 错误类型和模式
  • 受影响的模块/文件

2. 智能错误分组

按以下方式分组相似失败:

  • 错误类型:ImportError, AttributeError, AssertionError 等
  • 模块/文件:导致多个测试失败的同一文件
  • 根本原因:缺失依赖项、API更改、重构影响

按以下优先级分组:

  • 受影响测试数量(最高影响优先)
  • 依赖顺序(先修复基础设施后修复功能)

3. 系统性修复过程

对于每个组(从最高影响开始):

  1. 识别根本原因

    • 阅读相关代码
    • 使用 git diff 检查最近更改
    • 理解错误模式
  2. 实施修复

    • 使用编辑工具进行代码更改
    • 遵循项目约定(见 CLAUDE.md
    • 进行最小化、有针对性的更改
  3. 验证修复

    • 为此组运行测试子集
    • 使用 pytest 标记或文件模式:
      uv run pytest tests/path/to/test_file.py -v
      uv run pytest -k "pattern" -v
      
    • 确保组通过后再继续
  4. 移动到下一组

4. 修复顺序策略

基础设施优先:

  • 导入错误
  • 缺失依赖项
  • 配置问题

然后API更改:

  • 函数签名更改
  • 模块重组
  • 重命名变量/函数

最后逻辑问题:

  • 断言失败
  • 业务逻辑错误
  • 边缘情况处理

5. 最终验证

所有组修复后:

  • 运行完整测试套件:make test
  • 验证无回归
  • 检查测试覆盖率保持不变

最佳实践

  • 一次修复一个组
  • 每次修复后运行针对性测试
  • 使用 git diff 理解最近更改
  • 寻找失败模式
  • 在当前组通过前不要移动到下一组
  • 保持更改最小化和有针对性的

示例工作流

用户:“重构后测试失败”

  1. 运行 make test → 识别15个失败
  2. 分组错误:
    • 8个ImportErrors(模块重命名)
    • 5个AttributeErrors(函数签名更改)
    • 2个AssertionErrors(逻辑错误)
  3. 首先修复ImportErrors → 运行子集 → 验证
  4. 修复AttributeErrors → 运行子集 → 验证
  5. 修复AssertionErrors → 运行子集 → 验证
  6. 运行完整套件 → 全部通过 ✓