用途:依据项目实际情况生成测试套件。它先做覆盖率缺口分析,按优先级挑选目标,再为每个模块组编写测试,最后用实际运行的覆盖率数字提交。所有测试必须基于真实读过的源码与验证过的模式,禁止假设框架、编造覆盖率或引用不存在的接口。
主要能力:
- 项目发现(Phase 0):先探测测试、覆盖率、lint 命令,并参考 2-3 个现有测试文件推断风格;不预设 pytest/vitest/jest。
- 覆盖率缺口分析(Phase 1):运行发现到的覆盖率命令(如 pytest --cov --cov-report=term-missing、vitest --coverage、jest --coverage、make coverage),按优先级排序:关键业务逻辑、零覆盖文件、高复杂度代码、近期改动(git log --oneline -20 --name-only)、易错区域。
- 测试计划与确认(Phase 2):用 AskUserQuestion 展示计划,可选全量覆盖、仅关键路径或指定模块;无该工具时以纯文本征询。未获批准不进入 Phase 3。
- 并行生成(Phase 3):把目标分组,分别派生子代理编写测试;无子代理工具时自行逐组编写。
- 质量验证(Phase 4):运行实际测试命令,最多 3 轮修复后如实报告仍失败项;Stop 钩子会在会话结束前自动重跑测试、覆盖率与 lint。
- 最终提交(Phase 5):使用 cc-arsenal:git-commit 或手动创建提交,提交信息使用实测覆盖率,如 git commit -m "test: add comprehensive tests for [modules]。
使用方式:可指定目标($ARGUMENTS)。小型任务(1-2 个测试、单文件)跳过任务创建与审批门;大型任务(多文件/模块、覆盖率推进、需并行)走完整 Phase 0-5 并勾选清单。若无法确定,默认按小型处理,仅在目标涉及多个模块时升级。
测试质量原则:Arrange-Act-Assert、单一职责、描述性命名、测试独立、确定性、快速、可读、可维护、精简覆盖。跳过平凡 getter 与框架保证行为,但安全、校验与数据丢失相关路径必须测试。
限制:不得为凑覆盖率写无意义断言或快照;新测试失败须区分是新测试假设错误还是既有代码副作用;所有既有测试必须继续通过。资料未提供具体收费、价格、支持平台与效果数据,暂未提供。