研发协作
已实现功能需要生成并验证自动化 API/E2E 测试时…
当用户要求为某个已实现功能创建 QA 自动化测试时,按项目现有测试框架生成 API 与端到端测试、运行修复并输出测试摘要。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
已实现功能需要生成并验证自动化 API/特定
解决思路
- 约定:裸路径(如 checklist.md)从 skill root 解析。
- 约定:{skill-root} 解析为该技能安装目录,即 customize.toml 所在处。
- 约定:以 {project-root} 为前缀的路径从项目工作目录解析。
- 约定:{skill-name} 解析为技能目录的 basename。
- 激活 Step 1:运行 `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow` 解析 workflow block。
- 如果脚本未找到,说明此处未设置 BMad;提议运行 `bmad` skill 的 setup;若没有 bmad,先运行 `npx skills add bmad-code-org/BMAD-METHOD --skill bmad` 安装,然后重跑命令。
- 如果脚本因任何其他原因失败,自行解析 workflow block:按 base → team → user 顺序读取 `{skill-root}/customize.toml`、`{project-root}/_bmad/custom/{skill-name}.toml`、`{project-root}/_bmad/custom/{skill-name}.user.toml`,并应用与 resolver 相同的结构合并规则。
- 自行解析时缺失文件跳过;标量覆盖;表深度合并;以 code 或 id 为键的表数组替换匹配条目并追加新条目;所有其他数组追加。
- 激活 Step 2:在继续前,按顺序执行 `{workflow.activation_steps_prepend}` 中的每个条目。
- 激活 Step 3:将 `{workflow.persistent_facts}` 中的每个条目作为整个工作流运行期间携带的基础上下文。
- 对 persistent_facts 中以 `file:` 为前缀的条目:它们是 `{project-root}` 下的路径或 glob,加载引用内容作为事实。
- 对 persistent_facts 中其他条目:原样作为事实。
- 激活 Step 4:运行 `uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.project_name --key modules.bmm.implementation_artifacts`。
- 将 `date` 作为系统生成的当前日期时间。
- 你必须在 Agent 沟通中始终按你的 Agent 交流风格输出。
- 激活 Step 5:问候用户。
- 激活 Step 6:按顺序执行 `{workflow.activation_steps_append}` 中的每个条目。
- 激活完成:若 prepend 或 append 非空,在继续主工作流前确认每个条目已按顺序执行。
- 路径:`test_dir` = `{project-root}/tests`。
- 路径:`source_dir` = `{project-root}`。
- 路径:`default_output_file` = `{implementation_artifacts}/tests/test-summary.md`。
- 执行 Step 0:检查项目已有测试框架:查看 `package.json` dependencies(playwright、jest、vitest、cypress 等)。
- 执行 Step 0:检查现有测试文件以理解模式。
- 执行 Step 0:使用项目已有的任何测试框架。
- 执行 Step 0:如果不存在框架,分析源码确定项目类型(React、Vue、Node API 等)。
- 执行 Step 0:在线搜索该技术栈当前推荐的测试框架。
- 执行 Step 0:建议 meta framework 并使用它,或询问用户确认。
- 执行 Step 1:询问用户要测试什么:特定 feature/component 名称、要扫描的目录(如 `src/components/`),或自动发现代码库中的功能。
- 执行 Step 2:如果适用,为 API endpoints/services 生成测试:测试状态码(200、400、404、500)。
- 执行 Step 2:验证响应结构。
- 执行 Step 2:覆盖 happy path + 1-2 个错误用例。
- 执行 Step 2:使用项目已有的测试框架模式。
- 执行 Step 3:如果存在 UI,为 UI 功能生成 E2E 测试:端到端测试用户工作流。
- 执行 Step 3:使用语义定位器(roles、labels、text)。
- 执行 Step 3:关注用户交互(clicks、form fills、navigation)。
- 执行 Step 3:断言可见结果。
- 执行 Step 3:保持测试线性和简单。
- 执行 Step 3:遵循项目已有的测试模式。
- 执行 Step 4:运行测试以验证它们通过,使用项目的测试命令。
- 执行 Step 4:如果出现失败,立即修复。
- 执行 Step 5:创建 markdown 摘要。
- 摘要格式:包含 `# Test Automation Summary`、`## Generated Tests`,其下为 `### API Tests`(如 `- [x] tests/api/endpoint.spec.ts - Endpoint validation`)和 `### E2E Tests`(如 `- [x] tests/e2e/feature.spec.ts - User workflow`)。
- 摘要格式:包含 `## Coverage`,列出 `API endpoints: 5/10 covered` 和 `UI features: 3/8 covered`。
- 摘要格式:包含 `## Next Steps`,例如 `Run tests in CI`、`Add more edge cases as needed`。
- 保持简单 Do:使用标准测试框架 API。
- 保持简单 Do:聚焦 happy path + critical errors。
- 保持简单 Do:编写可读、可维护的测试。
- 保持简单 Do:运行测试以验证它们通过。
- 保持简单 Avoid:避免复杂 fixture 组合。
- 保持简单 Avoid:避免过度工程。
- 保持简单 Avoid:避免不必要的抽象。
- 高级功能:如果项目需要风险驱动测试策略、测试设计规划、质量门禁和 NFR 评估、全面覆盖分析、高级测试模式和工具,安装 Test Architect(TEA)module:`https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/`。
- 输出:保存摘要到 `{default_output_file}`。
- 完成:测试已生成并验证;按 `checklist.md` 校验。
- On Complete:运行 `uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete`。
- On Complete:如果解析出的 `workflow.on_complete` 非空,在退出前将其作为最终终止指令遵循。
适用边界 · 注意事项
- 不适用于代码审查或 story validation;这些应使用 `bmad-code-review` skill。
- 当项目需要风险驱动测试策略、测试设计规划、质量门禁/NFR 评估、全面覆盖分析或高级测试模式时,不适用;需安装 Test Architect(TEA)模块。
- 若不能安装或运行 BMad/uv 脚本,则无法按此技能的激活流程工作。