多代理系统自动化 React 单元测试:从规划到变异验证
React 开发者常常面临从 Enzyme 迁移测试到 React Testing Library (RTL) 的挑战。手动重构数百个组件可能耗时数月。基于大语言模型 (LLM) 的自动化能大幅缩短时间:从简单提示到带变异验证的多代理流水线。该系统生成、审查和验证测试,无缝融入你的工作流。
简单方法的常见陷阱
早期用 ChatGPT 实验生成的代码经常出错:TypeScript 错误、RTL 反模式,且缺少项目上下文。模型输出通用测试,忽略 mocks、状态管理和路由。
N8N 流水线配系统提示有所改善:
- 组件分析和复杂度评估。
- 测试用例分类(简单、中等、复杂)。
- 带示例的分组生成。
但不实际运行项目中,测试无法编译。Cursor 能访问 IDE 文件,是进步:它看到导入和类型,但仍需反复提示强调 RTL 最佳实践。
Claude Code:代理基础
Claude Code 引入带隔离上下文和项目访问的代理。代理可查看文件、运行命令(ESLint、TypeScript、Jest/Vitest)。unit-tester 技能协调流水线,按需生成子代理。
.test-pipeline.yaml 配置存储项目细节:mock 路径、状态管理、测试运行器和规则。
三代理原型
基本流水线:
- test-planner:分析组件(UI vs 容器)并规划测试用例。
- test-writer:基于规划生成
.test.tsx文件。 - test-validator:检查编译和执行(ESLint、TS、测试)。
优势:
- 基于完整项目代码库工作。
- 自我验证结果。
- 代理专注特定任务。
- 配置提供项目上下文。
RTL 哲学审查
测试通过不等于高质量。test-reviewer 代理打分(1–10 分),评估:
- 测试行为而非实现。
- 使用角色/标签,避免 CSS 类。
- 描述性测试名称。
- 常量取代魔法字符串。
低于 9 分触发修订(最多 3 次迭代)。
变异测试验证
关键步骤:确保测试捕获 bug。mutation-planner 为每个测试用例生成变异:
- 空邮箱按钮禁用 → 移除
disabled。 - 错误显示 → 删除渲染。
- API 调用 → 注释掉。
test-verifier 顺序运行:
- 原版测试通过 ✅。
- 备份组件。
- 变异,测试失败 ❌。
- 恢复,测试通过 ✅。
目标:100% 捕获率。低于此?修订(最多 3 次)。
最终架构:7 个代理
七代理、六步骤:
- commit-analyzer:扫描提交,识别变更组件。
- test-planner。
- test-writer。
- test-validator。
- test-reviewer。
- mutation-planner + test-verifier。
模型分配:
| 任务 | 模型 |
|--------|--------|
| 规划、编写、审查、变异 | Opus(深度分析) |
| 验证、变异执行 | Sonnet(执行力) |
commit-analyzer 集成 Git 流程:分析 hash 到 HEAD 的 diff,交互建议测试(approve/skip)。
核心收获
- 多代理数小时完成测试迁移,非数月。
- 变异确保真实质量:100% bug 检测。
.test-pipeline.yaml配置适配任意项目。- Opus 创意、Sonnet 常规——速度/质量完美平衡。
- 提交集成保持测试常青。
— Editorial Team
暂无评论。