SuperAPI AI 工具集

post-dev-test

测试与质量

查看项目

更新于 10-16 04:41

技能介绍

Post-Dev Test 是一个面向功能开发完成后的测试补全技能,主要用于在功能开发结束后、提交前检查并补齐集成测试与端到端(e2e)测试。

用途 该技能用于在完成 feature-dev 流程之后、执行 /precommit 之前,确保新功能具备足够的集成或 e2e 覆盖。当单元测试已存在但缺少更高层级测试时,也适用。其核心规则是:只要存在代码变更,就必须执行相关测试,即使测试覆盖看起来完整。原因是测试覆盖不等于测试通过,已有测试可能因代码变更而失败。

主要能力

  • 分析对话历史,识别所开发的功能、涉及的 Service / Provider / Controller,以及核心流程和 API 端点。
  • 检查现有测试覆盖:在 test/integration/ 和 test/e2e/ 中搜索相关测试,评估覆盖缺口。
  • 根据变更类型确定测试策略:新 API 需要集成测试(Controller + Service);新 Service 需要集成测试(Service 层);跨服务变更需要 e2e 测试(完整流程);数据库操作需要集成测试(真实数据库);外部 API 需要集成测试(mock 外部)。
  • 编写测试:参考现有测试模式,使用 {FRAMEWORK_MOCK_LIB} 的 createApp / createRequester,遵循 TEST_ENV 环境变量约定,写入对应目录。
  • 执行验证:运行新增测试,确认通过并报告结果。

使用方式 触发关键词包括:add tests、integration test、e2e test、test coverage、post dev test。工作流程分为五个阶段:

  1. 分析上下文:从对话历史中确定开发的功能,识别涉及的 Service / Provider / Controller,列出核心流程和 API 端点。
  2. 检查现有测试覆盖:搜索 test/integration/ 和 test/e2e/ 中的相关测试,评估覆盖缺口。
  3. 确定测试策略:按变更类型选择集成测试或 e2e 测试。
  4. 编写测试:参考现有模式,使用指定工具,写入对应目录。
  5. 执行验证:运行新增测试,确认通过并报告结果。

测试文件约定:集成测试放在 test/integration/,命名 *.integration.test.ts 或 *.test.ts,环境变量 TEST_ENV=integration;e2e 测试放在 test/e2e/,命名 *.e2e.test.ts 或 *.test.ts,环境变量 TEST_ENV=e2e。

测试模板使用 {FRAMEWORK_WEB}、{FRAMEWORK_MOCK_LIB} 等占位符,并引入 createRequester、TestEnvironment、onlyIf 等辅助工具。执行命令示例:

  • 执行单个集成测试:TEST_ENV=integration yarn jest test/integration/path/to/test.ts
  • 执行单个 e2e 测试:TEST_ENV=e2e yarn jest test/e2e/path/to/test.ts

适用场景

  • 功能开发完成后,需要确保新功能有足够的集成/e2e 覆盖。
  • 单元测试存在,但缺少更高层级测试。
  • 存在代码变更时,即使测试覆盖看起来完整,也需要执行相关测试以确认无回归。
  • 纯文档/注释变更可以跳过。

限制

  • 不适用于仅需单元测试的场景(应使用 /codex-test-gen)。
  • 不适用于审查已有测试的场景(应使用 /codex-test-review)。
  • 不适用于仍处于开发阶段的情况(应先完成 /feature-dev 流程)。
  • 输出包括正确目录下的测试文件、覆盖变化报告,以及门禁结论:覆盖充分或仍有缺口。
  • 验证清单包括:测试文件在正确目录、使用正确的 TEST_ENV 条件、测试可独立运行、覆盖主流程和错误场景。

参考资料:references/test-patterns.md 提供现有测试模式参考。