mcpField
B
bmad-testarch-framework

bmad-testarch-framework

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

关于 bmad-testarch-framework

bmad-testarch-framework 是用于搭建测试框架、CI/CD 质量流水线或两者的技能,面向测试架构师和工程团队。它根据选择的范围执行框架或 CI 设置流程,并支持创建、评估、验证及恢复操作。

主要功能

  1. 01搭建测试框架或 CI/CD 流水线
  2. 02配置测试夹具、辅助工具与钩子
  3. 03设置质量门禁
  4. 04选择框架、CI 或两者作为范围
  5. 05支持创建、评估、验证和恢复

适用场景

  1. 01为项目建立测试框架
  2. 02为 CI/CD 配置质量流水线
  3. 03检查现有测试框架或 CI 配置
  4. 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.toml
checklist.md
customize.toml
instructions.md
ci/
azure-pipelines-template.yaml
checklist.md
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
step-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 区块:

  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 中的每个条目,并在配置/问候之前完成。请求门禁已恢复当前运行,并在此步骤前持久化其日志。执行前保存每个条目的 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;所有请求的阶段均满足其特定操作的完成标准后,流程才算完成。

评论

支持 Markdown