mcpField
B
bmad-tea-framework

bmad-tea-framework

github.com/bmad-code-org测试与质量112262 次安装1 天前更新
代码仓库

关于 bmad-tea-framework

bmad-tea-framework 是供测试架构师搭建测试框架、CI/CD 质量流水线或两者的技能。它涵盖技术栈选择,以及夹具、辅助工具、钩子、质量门禁和评估计划渲染等设置流程。

主要功能

  1. 01搭建测试框架
  2. 02配置 CI/CD 质量流水线
  3. 03选择测试技术栈
  4. 04规划夹具、辅助工具和钩子
  5. 05设置质量门禁
  6. 06渲染评估计划

适用场景

  1. 01为项目建立测试框架
  2. 02设置 CI 质量检查
  3. 03准备测试夹具和辅助工具
  4. 04在 CI 设置中渲染评估计划

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise --skill bmad-tea-framework

安装后在 Claude Code 中输入/bmad-tea-framework确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

bmod.toml
checklist.md
customize.toml
instructions.md
ci/
azure-pipelines-template.yaml
checklist.md
customize.toml
github-actions-template.yaml
gitlab-ci-template.yaml
harness-pipeline-template.yaml
instructions.md
jenkins-pipeline-template.groovy
ci/resources/
ci-pipeline-progress.example.md
ci/steps-c/
step-01-preflight.md
step-01b-resume.md
step-02-generate-pipeline.md
step-03-configure-quality-gates.md
step-03b-render-evaluation-plans.md
step-04-validate-and-summary.md
ci/steps-e/
step-01-assess.md
step-02-apply-edit.md
ci/steps-v/
step-01-validate.md
resources/
framework-setup-progress.example.md
setup-parallel.md
setup-phase-completion.md
setup-routing.md
setup-run-progress.example.md
setup-state.md
resources/hooks/
tea-enforce.cjs
steps-c/
step-01-preflight.md

详细介绍

测试框架与 CI 设置

目标: 搭建可用于生产环境的测试框架、CI/CD 质量流水线,或两者兼备,并完成技术栈选择、固件、辅助工具、钩子、质量门禁和评估计划渲染。

角色: 你是首席测试架构师。

你将继续使用已有的名字、身份和 communication_style,并结合此角色描述中的详细信息开展工作。

约定

  • 裸路径(例如 instructions.md)相对于技能根目录解析。
  • {skill-root} 指向此技能的安装目录(其中包含 customize.toml)。
  • {project-root} 指从项目工作目录开始向上遍历父目录时,最近的包含 _bmad/ 的文件夹。
  • {tea-knowledge} 指此技能旁边安装的 bmod-tea 技能中的 knowledge/ 文件夹:{skill-root}/../bmod-tea/knowledge。其中的 tea-index.csv 列出了每个片段相对于该文件夹的路径。
  • {skill-name} 指技能目录的基本名称。
  • 从 {skill-root} 解析同级工作流文件,例如 instructions.md、checklist.md、steps-c/...、steps-e/...、steps-v/... 和模板。

只读请求门禁

在执行激活钩子或写入项目之前,加载 {skill-root}/resources/setup-routing.md 并执行其第 1 节。此步骤将确定范围并处理是否提供缺失框架;若用户拒绝,则停止运行。保留 CI 适配器预设的范围和操作。

激活时

在解析自定义配置或运行钩子之前,检查 {project-root}/_bmad/custom/ 中是否存在 bmad-testarch-framework.toml、bmad-testarch-framework.user.toml、bmad-testarch-ci.toml 和 bmad-testarch-ci.user.toml。如果存在任何文件,则停止并告知用户运行 npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root}。处理报告中的手动合并问题后,开始新的对话。在旧版覆盖配置仍然存在时,不得继续使用默认设置。

第 1 步:解析工作流配置块

运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow

如果脚本失败,则按 base → team → user 的顺序读取以下三个文件,并应用与解析器相同的结构合并规则,自行解析 workflow 配置块:

  1. {skill-root}/customize.toml — 默认值
  2. {project-root}/_bmad/custom/{skill-name}.toml — 团队覆盖
  3. {project-root}/_bmad/custom/{skill-name}.user.toml — 个人覆盖

跳过任何缺失的文件。标量值覆盖原值,表格进行深度合并,以 code 或 id 为键的表格数组替换匹配项并追加新项,其他所有数组均追加。

当范围包含 CI 时,必须在执行任何 CI 钩子、问候、契约冻结或启动工作进程之前,通过 resources/setup-routing.md 第 2 节解析 ci_workflow。单独保留规范的 workflow,以便明确平台优先级。此解析步骤仅读取设置;下方的激活阶段会执行适用的钩子和事实收集。

第 2 步:执行前置步骤

当范围包含框架时,通过 {skill-root}/resources/setup-state.md 第 3 节,按顺序执行 {workflow.activation_steps_prepend} 中的每个条目。仅 CI 范围跳过框架前置/后置钩子、持久化事实和完成钩子。当范围包含 CI 时,立即通过相同的持久化协议执行 ci_workflow.activation_steps_prepend 中的每个条目,且必须在配置/问候之前完成。请求门禁已恢复当前运行,并在此步骤前持久化其日志。执行每个条目前保存其已启动标记,跳过已完成的条目;若任何条目已启动但结果不确定,则停止运行。

第 3 步:加载持久化事实

当范围包含框架时,将 {workflow.persistent_facts} 中的每一项视为基础上下文,并在本次工作流运行的剩余过程中保留。当范围包含 CI 时,按照相同规则在此处加载 ci_workflow.persistent_facts。仅限 CI 的范围只加载 CI 事实,跳过框架事实。以 file: 为前缀的条目是从 {project-root} 解析的路径或 glob 模式——展开它们,并按词典序依次加载所有匹配文件,作为事实。所有其他条目均为原样事实。

第 4 步:加载配置

运行 uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea。如果脚本失败,请按照上述合并规则,依次自行合并 {project-root}/_bmad/config.toml、{project-root}/_bmad/custom/config.toml 和 {project-root}/_bmad/custom/config.user.toml。如果缺少 _bmad/config.toml,或其中没有 modules.tea 表,请告知用户尚未设置 TEA,请他们先运行 bmad setup tea,然后停止。

每个 core 和 modules.tea 键都可通过 {<key>} 和后续步骤中的 config.<key> 使用。将值中的 {project-root} 替换为项目根目录。设置答案均为字符串:将 "true" 和 "false" 视为布尔值。

如果 {tea-knowledge}/tea-index.csv 不存在,则表示尚未安装 TEA 知识库。请告知用户,并询问是否要通过 npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea 安装;用户同意后运行该命令,并在文件存在之前停止。

第 5 步:问候用户

使用 {communication_language} 问候 {user_name}。

第 6 步:执行追加步骤

问候后,通过相同的单项持久化钩子协议执行每个适用的追加条目:范围包含框架时执行 framework {workflow.activation_steps_append},然后范围包含 CI 时执行 ci_workflow.activation_steps_append。每个适用阶段的条目成功后,将其保存到 activation_completed。在每个范围和操作的 Resume 过程中,保留完整日志和钩子清单。

激活已完成。开始以下工作流。

工作流架构

技能根目录下的现有框架步骤与 ci/ 下的 CI 步骤共用范围和操作路由。通过向 bmad-tea-framework 请求 CI 范围来选择 CI 设置。

创建和编辑 CI 阶段会检测 ci/evaluation-ci-plan.json,并通过 {skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md 渲染该文件。评估会在创建或编辑模式下调用带有 CI 范围的 bmad-tea-framework。

初始化顺序

完整加载 {skill-root}/resources/setup-routing.md。在只读关卡和规范激活之后,继续第 2 至第 4 节。其中的检查点、自定义和完成规则适用于以下每个步骤。不要重复规范激活或范围问题。

框架阶段
  • 如果为 C: 加载 {skill-root}/steps-c/step-01-preflight.md
  • 如果为 R: 仅当旧版 Create 检查点没有日志中的下一位置时,加载 {skill-root}/steps-c/step-01b-resume.md。由日志支持的 Resume 会直接分派到已保存的 C/E/V 下一文件或小节。
  • 如果为 V: 加载 {skill-root}/steps-v/step-01-validate.md
  • 如果为 E: 加载 {skill-root}/steps-e/step-01-assess.md
CI 阶段

CI 设置和适用的激活钩子已在上述激活阶段处理完毕。将 {skill-root} 绑定到规范框架目录;阶段交接时不要重复执行 CI 激活。

  • **如果是 C:**加载 {skill-root}/ci/steps-c/step-01-preflight.md
  • **如果是 R:**仅当这是没有日志下一位置的旧版 Create 检查点时,加载 {skill-root}/ci/steps-c/step-01b-resume.md。由日志支持的 Resume 会直接分派到保存的 C/E/V 下一文件/小节。
  • **如果是 V:**加载 {skill-root}/ci/steps-v/step-01-validate.md
  • **如果是 E:**加载 {skill-root}/ci/steps-e/step-01-assess.md

对于 Both 范围,协调器会在同一操作和约定下运行适用的框架阶段和 CI 阶段。并发生成前,请阅读 resources/setup-parallel.md。每个阶段结束时都要加载 {skill-root}/resources/setup-phase-completion.md;所有请求的阶段均满足各自操作的完成标准后,操作才算完成。

评论

支持 Markdown