关于 bmad-testarch-framework
bmad-testarch-framework 是用于搭建测试框架、CI/CD 质量流水线或两者的技能,面向测试架构师和工程团队。它根据选择的范围执行框架或 CI 设置流程,并支持创建、评估、验证及恢复操作。
主要功能
- 01搭建测试框架或 CI/CD 流水线
- 02配置测试夹具、辅助工具与钩子
- 03设置质量门禁
- 04选择框架、CI 或两者作为范围
- 05支持创建、评估、验证和恢复
适用场景
- 01为项目建立测试框架
- 02为 CI/CD 配置质量流水线
- 03检查现有测试框架或 CI 配置
- 04恢复未完成的设置流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method-test-architecture-enterprise --skill bmad-testarch-framework安装后在 Claude Code 中输入/bmad-testarch-framework确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
bmod.tomlchecklist.mdcustomize.tomlinstructions.mdci/azure-pipelines-template.yamlchecklist.mdgithub-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.mdstep-01b-resume.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 适配器预设的范围和操作。
激活时
第 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 中的每个条目,并在配置/问候之前完成。请求门禁已恢复当前运行,并在此步骤前持久化其日志。执行前保存每个条目的 started 标记,跳过已完成的条目;若任何条目已启动但结果不确定,则停止。
第 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 过程中,保留完整日志和钩子记录。
激活已完成。开始执行以下工作流。
工作流架构
技能根目录下现有的 framework 步骤与 ci/ 下的 CI 步骤共用范围和操作路由。通过向 bmad-testarch-framework 请求 CI 范围来选择 CI 设置。
创建和编辑 CI 阶段时,检测 ci/evaluation-ci-plan.json,并通过 {skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md 渲染。评估时,以创建或编辑模式调用带有 CI 范围的 bmad-testarch-framework。
初始化顺序
完整加载 {skill-root}/resources/setup-routing.md。只读门控和规范激活完成后,继续执行第 2 至第 4 节。其检查点、自定义和完成规则适用于以下每个步骤。不要重复规范激活或范围问题。
Framework 阶段
- 如果是 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} 指向规范 framework 目录;不要重新执行 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
对于两个范围,协调器均在相同操作和约定契约下运行适用的 framework 与 CI 阶段。并行生成前,先阅读 resources/setup-parallel.md。每个阶段结束时都加载 {skill-root}/resources/setup-phase-completion.md;所有请求的阶段均满足其特定操作的完成标准后,流程才算完成。