用途
Test Review 是一个测试覆盖审查技能,通过 Codex exec 执行。它用于审查测试是否充分、识别覆盖缺口、审计测试质量。根据资料,它明确不适用于:代码审查(应使用 codex-code-review)、文档审查(应使用 doc-review)、仅运行测试(应使用 /verify)。
主要能力
该技能提供以下命令:
- /codex-test-review:审查测试充分性(必需)。
- /codex-test-gen:生成单元测试,用于补充缺失的测试。
- /check-coverage:测试覆盖率分析,适用于功能开发之后。
使用方式
/codex-test-review 工作流
流程为:智能检测目标 → 读取测试与源码 → Codex 审查(5 个维度)→ 覆盖率评估 + 门禁 → 若需要补充则循环。
步骤 1:智能检测。输入可以是文件路径(直接审查该文件)、目录(审查目录中所有测试)、描述(自动查找相关测试文件)、模块名(搜索相关测试文件),或无参数(从 git diff 自动检测)。
步骤 2:读取测试与源码。读取测试文件(TEST_FILE),并读取对应源码(SOURCE_FILE,从测试路径推断)。
步骤 3:Codex 审查。首次审查按 @skills/codex-code-review/references/codex-transport.md § Start 分派,使用测试审查提示词,参见 references/codex-prompt-test-review.md。循环审查按 § Resume 使用重新审查模板分派。保存返回的 threadId。
/codex-test-review --ac-trace 工作流
AC 可追溯性模式,将请求文档中的验收标准映射到测试证据。流程为:--ac-trace 输入 → 读取请求文档 → 解析 AC → 过滤质量门禁 → 搜索证据 → Codex 验证 → 矩阵 + 门禁。
步骤 1:输入解析。--ac-trace <request-path> 读取指定请求文档;--ac-trace(无路径)从 docs/features//requests/.md 通过 git diff 上下文自动检测;无 --ac-trace 则执行现有行为(5 维度覆盖审查)。
步骤 2:解析并过滤 AC。定位请求文档中的 ## Acceptance Criteria 部分,解析 - [ ] / - [x] 项,过滤掉匹配 /codex-review-fast、/codex-review-doc、/codex-review、/precommit、/precommit-fast、/pr-review 的质量门禁 AC。
步骤 3:搜索证据。对每个非质量门禁 AC,按优先级查找证据:自动化测试(优先级 1,首选,搜索相关文件测试路径,匹配 AC 文本到测试断言)、运行时验证(优先级 2,搜索 /feature-verify 结果,L3+ 置信度)、手动例外(优先级 3,仅验证过的,检查 AC 注释 <!-- exception: REASON, expires: DATE -->)。
步骤 4:Codex 验证(独立)。使用新线程,参见 references/codex-prompt-ac-trace.md。缓存键为 request-path + git diff hash,同一会话复用。保存返回的 threadId。
步骤 5:例外验证(3 道门禁)。原因类别为封闭枚举:ENV_UNAVAILABLE / UNSAFE_TO_AUTOMATE / ONE_TIME_MIGRATION;Codex 验证必须发出 VALID_EXCEPTION;过期时间为 ISO 8601,过期则为 ⛔(严格)或 ⚠️(建议)。例外上限(来自 @rules/testing.md):1-8 个 AC 最多 1 个;9-12 个最多 2 个;13+ 个硬上限 2 个。禁止领域:安全 AC、数据完整性 AC、回归 AC 不允许例外。
步骤 6:输出 + 门禁。门禁哨兵(来自 @rules/testing.md):gate: Adequate → ✅ Adequate,gate: Adequate_with_exceptions → ⚠️ Adequate with exceptions,gate: Need_Human → ⚠️ Need Human,gate: Inadequate → ⛔ Inadequate。
/codex-test-gen 工作流
流程为:读取源码 → 推导测试路径 → Codex 生成 → 保存测试文件 → 建议审查。
步骤:读取源文件;推导测试路径,如 src/service/xxx.ts → test/unit/service/xxx.test.ts;在渲染提示词前绑定 FUNCTION_NAME(调用中指定的函数名,或当调用者仅提供路径时使用字面量 all,/codex-test-gen src/service/xxx.ts 是文档化的仅文件形式);Codex 生成测试,参见 references/codex-prompt-test-gen.md;保存到目标路径;建议运行测试然后 /codex-test-review。
审查维度
- 正常路径:所有公共方法、主要流程,权重高。
- 错误处理:try/catch、错误回调,权重高。
- 边界情况:null/undefined、极值、空集合,权重中。
- Mock 质量:不过度、不不足,权重中。
三层测试
- 单元测试:目录 test/unit/,完全 Mock,聚焦单个函数。
- 集成测试:目录 test/integration/,仅 Mock 外部,聚焦模块间。
- E2E 测试:目录 test/e2e/,禁止 Mock,聚焦完整流程。
常见边界
- 字符串:""、" "、null、undefined、超长。
- 数字:0、-1、NaN、Infinity、MAX_SAFE_INTEGER。
- 数组:[]、[null]、超大、嵌套。
- 对象:{}、null、循环引用。
审查循环
遵循 @CLAUDE.md 自动循环:修复 → 重新审查 → ... → ✅ PASS。⛔ Needs additions → 添加测试 → /codex-test-review --continue <threadId> → 重复直到 ✅ Sufficient。线程轮换遵循中央契约(@skills/codex-code-review/references/review-common.md § Review Loop — Thread Rotation):在 R-a 阈值(此线程 3 次回复;@rules/auto-loop-project.md ## Review Thread Rotation 覆盖,2–6)或 R-b 判断上下文超限时,在新线程上分派首次审查模板而非回复,不输入旧发现,协调侧进行对账,并记录 [THREAD_ROTATED]。哨兵别名联合(不做规范化):✅ Tests sufficient / ✅ Sufficient 携带一个通过语义,⛔ Tests need supplementation / ⛔ Needs additions 携带一个失败语义。两种形式均按原样合法,每个报告恰好携带一个终止符(validate-family-sentinel.js test:coverage 拒绝混合)。最多 3 轮。仍失败则报告阻塞。
输出
输出格式为:
Test Coverage Review
| Dimension | Coverage | Rating |
|---|---|---|
| ... | ... | ⭐1-5 |
<findings and suggestions>
✅ Tests sufficient
报告以恰好一个终止符结束,单独位于最后一行的第 0 列,取自上述别名联合——通过:✅ Tests sufficient 或 ✅ Sufficient;失败:⛔ Tests need supplementation 或 ⛔ Needs additions。四种形式均按原样合法。切勿在一行放置两个备选。
验证
- 覆盖率评估包含所有维度。
- 恰好一个来自四形式别名联合的门禁终止符(✅ Tests sufficient / ✅ Sufficient / ⛔ Tests need supplementation / ⛔ Needs additions),单独位于最后一行的第 0 列。
- 缺失测试有具体的代码建议。
- Codex 独立研究源码分支。
参考
- 测试审查提示词:references/codex-prompt-test-review.md
- 测试生成提示词:references/codex-prompt-test-gen.md
- AC 追溯提示词:references/codex-prompt-ac-trace.md
- 标准:@rules/testing.md
示例
- 输入:/codex-test-review test/unit/service/xxx.test.ts;动作:读取测试 + 源码 → Codex 审查 → 覆盖率评估 + 门禁。
- 输入:/codex-test-gen src/service/xxx.ts;动作:读取源码 → Codex 生成 → 保存测试 → 建议审查。
- 输入:Are this service's tests sufficient?;动作:/codex-test-review → 评估覆盖率 → 输出缺口 + 门禁。
- 输入:/codex-test-review --ac-trace docs/features/auth/requests/2026-03-01-login.md;动作:解析 AC → 过滤质量门禁 → 搜索证据 → Codex 验证 → 矩阵 + 门禁。
限制
资料未提供该技能的收费、价格、平台支持范围等具体信息。其行为依赖 Codex exec 及一系列内部规则文件(如 @rules/testing.md、@rules/auto-loop.md 等),这些文件的具体内容未在资料中展开。