关于 bmad-tea-framework
bmad-tea-framework 是供测试架构师搭建测试框架、CI/CD 质量流水线或两者的技能。它涵盖技术栈选择,以及夹具、辅助工具、钩子、质量门禁和评估计划渲染等设置流程。
主要功能
- 01搭建测试框架
- 02配置 CI/CD 质量流水线
- 03选择测试技术栈
- 04规划夹具、辅助工具和钩子
- 05设置质量门禁
- 06渲染评估计划
适用场景
- 01为项目建立测试框架
- 02设置 CI 质量检查
- 03准备测试夹具和辅助工具
- 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.tomlchecklist.mdcustomize.tomlinstructions.mdci/azure-pipelines-template.yamlchecklist.mdcustomize.tomlgithub-actions-template.yamlgitlab-ci-template.yamlharness-pipeline-template.yamlinstructions.mdjenkins-pipeline-template.groovyci/resources/ci-pipeline-progress.example.mdci/steps-c/step-01-preflight.mdstep-01b-resume.mdstep-02-generate-pipeline.mdstep-03-configure-quality-gates.mdstep-03b-render-evaluation-plans.mdstep-04-validate-and-summary.mdci/steps-e/step-01-assess.mdstep-02-apply-edit.mdci/steps-v/step-01-validate.mdresources/framework-setup-progress.example.mdsetup-parallel.mdsetup-phase-completion.mdsetup-routing.mdsetup-run-progress.example.mdsetup-state.mdresources/hooks/tea-enforce.cjssteps-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 配置块:
{skill-root}/customize.toml— 默认值{project-root}/_bmad/custom/{skill-name}.toml— 团队覆盖{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;所有请求的阶段均满足各自操作的完成标准后,操作才算完成。