mcpField
D
dx-devops-test-suite-run

dx-devops-test-suite-run

github.com/forcedotcom测试与质量1.1k5.0k 次安装1 天前更新
代码仓库

关于 dx-devops-test-suite-run

用于启动 Salesforce DevOps Center 测试套件并轮询至完成的技能。它汇报运行状态和覆盖率,并将测试失败交由分析技能处理。

主要功能

  1. 01启动测试套件执行
  2. 02轮询状态直至完成
  3. 03汇报覆盖率和结果数量
  4. 04将失败交给分析技能
  5. 05支持重新触发质量门禁

适用场景

  1. 01运行管道阶段的测试套件
  2. 02监控进行中的测试运行
  3. 03查看运行后的失败项
  4. 04覆盖率提升后重跑质量门禁

安装

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

$npx skills add https://github.com/forcedotcom/sf-skills --skill dx-devops-test-suite-run

安装后在 Claude Code 中输入/dx-devops-test-suite-run确认已加载。

包含的文件

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

references/
error-handling.md
polling-configuration.md
prerequisite-checks.md
retrigger-mode.md

详细介绍

运行 DevOps Center 测试套件

触发 DevOps Center 测试套件执行,并持续监控直至完成。运行和轮询是同一操作的两个部分——除非已获得或有人提供 runId,否则切勿轮询。

API 版本: 所有 DevOps 测试系统调用均针对 Salesforce API v67.0(最低要求)。

重要: 所有 DevOps Center 数据都存储在 Salesforce 组织中,而非本地仓库中。始终使用 sf data query 或 sf api request rest 查询组织。


前提条件

运行 references/prerequisite-checks.md 中的前提检查——前提条件 1–4 以及前提条件 5(阶段),因为此技能针对特定阶段运行。你需要已确认的 doce-org-alias、pipelineId 和 stageId。

所需输入

输入获取方式
pipelineId前提条件 4(选择管道)
stageId前提条件 5(确认管道阶段)
event与用户确认:Pre-Promote、Post-Promote 或 Review
testSuiteIds从选择或推荐结果中确认套件 ID
doce-org-alias前提条件 1

步骤 1 — 触发执行

确认关卡

此调用会更改组织状态——未经用户明确确认,不要继续。 调用 API 前,向用户展示:

“我即将使用以下配置运行测试:

  • 管道:<pipelineName>
  • 阶段:<stageName>
  • 事件:<event>
  • 套件:<suiteName(s)>
  • 组织:<doce-org-alias>

要继续吗?”

用户确认后才能调用 API。

API 调用
sf api request rest \
  "/services/data/v67.0/connect/devopstesting/pipeline/<pipelineId>/stage/execute" \
  --method POST \
  --body '{
    "stageId": "<stageId>",
    "event": "<event>",
    "testSuiteIds": ["<suiteId1>", "<suiteId2>"]
  }' \
  --target-org <doce-org-alias>
字段类型说明
stageIdstring要在其上执行测试的管道阶段 ID
eventstringPre-Promote、Post-Promote 或 Review
testSuiteIdsstring[]一个或多个要执行的测试套件 ID
成功时

从响应中提取 runId(执行 ID)。告知用户:

“正在 <doce-org-alias> 中运行测试。结果准备就绪后,我会通知你。”

然后立即携带 runId 进入步骤 2(轮询)。

出错时

参见 references/error-handling.md。如果组织拒绝执行(例如 environmentId: null,或 classIdList is null or empty — no tests to execute),请读取实际错误,用通俗语言说明根本原因和所需修复,然后妥善结束。不要循环重试,也不要伪造 runId 或结果。


步骤 2 — 轮询直至完成

需要确认: 不需要——轮询会自动进行,且为只读操作。

按服务提供方适用的时间间隔,通过 runId 轮询执行记录。完整的轮询间隔、超时行为和轮询查询见 references/polling-configuration.md。

轮询循环摘要(runId 是 DevopsTestSuiteExecution 的 ID——轮询该对象,而非 DevopsTestExecution):

  • 每个间隔按 runId 查询 DevopsTestSuiteExecution,获取 Status, Coverage, SuccessCount, FailureCount, QualityGateStatus。
  • InProgress → 等待后再次轮询。
  • Passed / Failed → 直接展示 Coverage、SuccessCount、FailureCount 和 QualityGateStatus(不要输出原始 JSON)。如果 FailureCount > 0,获取子级 DevopsTestExecution 失败记录,并交由 dx-devops-test-failures-analyze 处理。
  • Error → 运行本身出错(并非测试失败);用通俗语言展示 ResultDetails/Message,并提出重试或跳过。
  • 超时 → 展示 runId,不要自动重试,等待用户指示。

重新触发模式(重新运行质量关卡)

当推广因关卡失败而受阻,且覆盖率缺口已解决时使用。所有前提条件、关卡和重新触发 API 调用均见 references/retrigger-mode.md。 关键规则:除非最新的 Coverage 达到或超过 DevopsQualityGateRule 阈值,否则不要重新触发。重新触发返回新的 runId 后,将其交给步骤 2(轮询)。

相关技能

  • dx-devops-test-failures-analyze — 完成后接收失败负载;也可以创建修复工作项。
  • dx-devops-test-suite-assignments-configure — 推荐要运行的套件,或在套件尚未关联时将其分配给阶段。
  • dx-devops-test-pipeline-configure — 配置新的质量门禁或阈值(此技能仅重新运行现有门禁)。

评论

支持 Markdown