Co-Pilot / 辅助式
更新于 a month ago

test-fixing

Mmhattingpete
0.2k
mhattingpete/claude-skills-marketplace/engineering-workflow-plugin/skills/test-fixing
76
Agent 评分

💡 摘要

一种能系统性地识别、分组并修复代码库中失败测试的AI技能。

🎯 适合人群

软件开发工程师DevOps工程师质量保证工程师开源项目维护者工程经理

🤖 AI 吐槽:这个技能就像一个一丝不苟的图书管理员,能按流派整理你还回的书,但仍然需要你来撰写缺失的章节。

安全分析低风险

该技能会执行shell命令(`make test`、`uv run pytest`、`git diff`),如果构建过程或测试套件被恶意修改,可能导致命令被劫持。它在修复过程中还会读写文件。缓解措施:在沙箱环境中运行AI代理,限制其文件系统和网络访问权限,并在执行前审计项目的测试命令。


name: test-fixing description: Run tests and systematically fix all failing tests using smart error grouping. Use when user asks to fix failing tests, mentions test failures, runs test suite and failures occur, or requests to make tests pass.

Test Fixing

Systematically identify and fix all failing tests using smart grouping strategies.

When to Use

  • Explicitly asks to fix tests ("fix these tests", "make tests pass")
  • Reports test failures ("tests are failing", "test suite is broken")
  • Completes implementation and wants tests passing
  • Mentions CI/CD failures due to tests

Systematic Approach

1. Initial Test Run

Run make test to identify all failing tests.

Analyze output for:

  • Total number of failures
  • Error types and patterns
  • Affected modules/files

2. Smart Error Grouping

Group similar failures by:

  • Error type: ImportError, AttributeError, AssertionError, etc.
  • Module/file: Same file causing multiple test failures
  • Root cause: Missing dependencies, API changes, refactoring impacts

Prioritize groups by:

  • Number of affected tests (highest impact first)
  • Dependency order (fix infrastructure before functionality)

3. Systematic Fixing Process

For each group (starting with highest impact):

  1. Identify root cause

    • Read relevant code
    • Check recent changes with git diff
    • Understand the error pattern
  2. Implement fix

    • Use Edit tool for code changes
    • Follow project conventions (see CLAUDE.md)
    • Make minimal, focused changes
  3. Verify fix

    • Run subset of tests for this group
    • Use pytest markers or file patterns:
      uv run pytest tests/path/to/test_file.py -v uv run pytest -k "pattern" -v
    • Ensure group passes before moving on
  4. Move to next group

4. Fix Order Strategy

Infrastructure first:

  • Import errors
  • Missing dependencies
  • Configuration issues

Then API changes:

  • Function signature changes
  • Module reorganization
  • Renamed variables/functions

Finally, logic issues:

  • Assertion failures
  • Business logic bugs
  • Edge case handling

5. Final Verification

After all groups fixed:

  • Run complete test suite: make test
  • Verify no regressions
  • Check test coverage remains intact

Best Practices

  • Fix one group at a time
  • Run focused tests after each fix
  • Use git diff to understand recent changes
  • Look for patterns in failures
  • Don't move to next group until current passes
  • Keep changes minimal and focused

Example Workflow

User: "The tests are failing after my refactor"

  1. Run make test → 15 failures identified
  2. Group errors:
    • 8 ImportErrors (module renamed)
    • 5 AttributeErrors (function signature changed)
    • 2 AssertionErrors (logic bugs)
  3. Fix ImportErrors first → Run subset → Verify
  4. Fix AttributeErrors → Run subset → Verify
  5. Fix AssertionErrors → Run subset → Verify
  6. Run full suite → All pass ✓
五维分析
清晰度8/10
创新性6/10
实用性9/10
完整性8/10
可维护性7/10
优缺点分析

优点

  • 提供了结构化、可重复的测试修复流程。
  • 根据影响和依赖关系确定修复优先级,提高了效率。
  • 通过将相似错误分组,降低了认知负荷。
  • 鼓励进行最小化、聚焦的更改以避免回归问题。

缺点

  • 严重依赖项目拥有`make test`命令,但这并非通用标准。
  • 策略较为通用,可能无法很好地处理复杂的、相互依赖的测试失败。
  • 假设AI拥有编辑工具和对代码库的深入理解。
  • 对于不稳定的测试或具有外部依赖的测试,效果可能较差。

相关技能

ccmp

A
toolCo-Pilot / 辅助式
86/ 100

“看起来很能打,但别让配置把人劝退。”

claude-mods

A
toolCo-Pilot / 辅助式
86/ 100

“看起来很能打,但别让配置把人劝退。”

agentic-qe

A
toolCo-Pilot / 辅助式
86/ 100

“看起来很能打,但别让配置把人劝退。”

免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。

版权归原作者所有 mhattingpete.