用途:在 Salesforce DevOps Center 的指定流水线阶段上触发并跟踪测试套件执行,覆盖 Pre-Promote、Post-Promote、Review 三类事件。运行与轮询是同一操作的两半,未获得 runId 前不应轮询。所有 DevOps 测试系统调用面向 Salesforce API v67.0(最低要求)。DevOps Center 数据存放在 Salesforce org 中,而非本地仓库,需用 sf data query 或 sf api request rest 查询 org。
前置条件:需完成 references/prerequisite-checks.md 中的前置检查 1–4 及第 5 项(阶段),并确认 doce-org-alias、pipelineId、stageId。输入包括 pipelineId、stageId、event、testSuiteIds、doce-org-alias。
触发执行:该调用会变更 org 状态,必须先向用户展示配置(流水线、阶段、事件、套件、org)并获得明确确认,再调用: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>。成功后从响应提取 runId 并告知用户,随即进入轮询。若 org 拒绝执行(如 environmentId 为 null,或 classIdList 为 null/空),应读取实际错误、用平实语言说明根因与修复方式并干净结束,不得循环重试或伪造 runId 与结果。
轮询:只读且自动,无需确认。按提供方建议间隔轮询 DevopsTestSuiteExecution(runId 即该对象 Id,而非 DevopsTestExecution),查询 Status、Coverage、SuccessCount、FailureCount、QualityGateStatus。InProgress 继续等待;Passed/Failed 内联展示覆盖率、成功数、失败数与质量门状态(不输出原始 JSON),若 FailureCount>0 则获取子 DevopsTestExecution 失败行并交给 dx-devops-test-failures-analyze;Error 表示运行本身出错,用平实语言展示 ResultDetails/Message 并提供重试或跳过;超时则展示 runId,不自动重试,等待用户指示。
重触发模式:用于晋升被门禁失败阻止且覆盖率缺口已解决时,规则是除非最新 Coverage 达到或超过 DevopsQualityGateRule 阈值,否则不得重触发;重触发返回新 runId 后交给轮询步骤。相关技能:dx-devops-test-failures-analyze、dx-devops-test-suite-assignments-configure、dx-devops-test-pipeline-configure(本技能只重跑已有门禁)。