关于 fix-tests
fix-tests 是面向编码 Agent 的测试修复技能,适用于业务逻辑调整、重构或依赖更新后测试失败的情况。它通过发现失败测试并协调专门 Agent 修复,同时要求保留测试意图并尽量不改业务逻辑。
主要功能
- 01定位失败测试并按文件分组
- 02并行协调专门 Agent 修复测试
- 03先运行全量测试建立基线
- 04验证单个测试文件的运行方式
- 05复测全套测试并迭代处理失败
适用场景
- 01业务逻辑变更后更新不匹配的测试
- 02重构后排查和修复失败测试
- 03依赖更新后恢复测试通过
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ neolabhq/ context-engineering-kit --skill fix-tests安装后在 Claude Code 中输入/fix-tests确认已加载。
详细介绍
修复测试
用户参数
用户可以指定要关注的测试或模块:
$ARGUMENTS
如果未提供任何内容,则关注所有测试。
上下文
业务逻辑变更、重构或依赖项更新后,测试可能会失败,因为它们不再符合当前行为或实现。此命令会协调专用 Agent,自动修复所有失败的测试。
目标
修复所有失败的测试,使其符合当前业务逻辑和实现。
重要约束
- 专注于修复测试——除非绝对必要,否则不要更改业务逻辑
- 保留测试意图——确保测试仍能验证预期行为
- “分析变更的复杂度”——
- 如果有 2 个或更多文件发生变更,或某个文件包含复杂逻辑,则不要自行编写测试——只协调 Agent!
- 如果只有 1 个文件发生简单变更,则可以自行编写测试。
工作流步骤
准备
-
如果有 sadd 技能,则阅读
- 如果有 sadd 技能,请阅读它,了解管理 Agent 的最佳实践
-
了解测试基础设施
- 阅读 @README.md 和 package.json(或等效的项目配置)
- 确定运行测试和生成覆盖率报告的命令
- 了解项目结构和测试惯例
-
运行所有测试
- 执行完整测试套件,以建立基线
-
找出所有失败的测试文件
- 解析测试输出,获取失败测试文件列表
- 按文件分组,以便并行执行 Agent
分析
- 验证单个测试的执行
- 选择任意一个测试文件
- 启动 haiku Agent,指示其找出仅运行此测试文件的正确命令
- 要求其反复尝试,直到能够可靠地运行单个测试
- 完成后,尝试运行某个特定测试文件(如果存在)
- 这可确保 Agent 能够单独运行测试
修复测试
-
并行启动
developerAgent- 为每个失败的测试文件启动一个 Agent
- 为每个 Agent 提供清晰的指示:
- 上下文:此测试需要修复的原因(业务逻辑已变更)
- 目标:需要修复的具体文件
- 指导:阅读 TDD 技能(如果有),了解编写测试的最佳实践。
- 资源:阅读 README 和相关文档
- 命令:运行此特定测试文件的方式
- 目标:反复迭代,直到测试通过
- 约束:修复测试,而非业务逻辑(除非业务逻辑明显有问题)
-
验证所有修复
- 所有 Agent 完成后,再次运行完整测试套件
- 确认所有测试均已通过
-
必要时迭代
- 如果仍有测试失败:返回第 5 步
- 仅为剩余的失败项启动新 Agent
- 持续迭代,直到通过率达到 100%
成功标准
- 所有测试均已通过 ✅
- 保持测试覆盖率
- 保留测试意图
- 业务逻辑未变更(除非发现错误)
Agent 指令模板
启动 Agent 时,请使用此模板:
The business logic has changed and test file {FILE_PATH} is now failing.
Your task:
1. Read the test file and understand what it's testing
2. Read TDD skill (if available) for best practices on writing tests.
3. Read @README.md for project context
4. Run the test: {TEST_COMMAND}
5. Analyze the failure - is it:
- Test expectations outdated? → Fix test assertions
- Test setup broken? → Fix test setup/mocks
- Business logic bug? → Fix logic (rare case)
6. Fix the test and verify it passes
7. Iterate until test passes
评论
支持 Markdown