用途
polling-test-results 用于轮询 DevOps Center 中异步测试执行的状态,直到该执行完成、超时或失败。它通过 runId 对执行记录进行只读 SOQL 查询,属于自动轮询,无需用户确认。
主要能力
- 按 runId 轮询 DevOps Center 组织中的异步测试执行状态。
- 根据测试类型采用不同的轮询配置(轮询间隔、最大等待时间、超时动作)。
- 在每次轮询时检查执行记录的 Status 字段:Queued / Running 表示继续等待并再次轮询;Completed 表示进入结果分析;Failed 表示展示错误并提供重试或跳过选项。
- 超时后向用户展示 runId,不自动重试,等待用户指示。
- 完成后将完整结果负载传递给 analyzing-test-failures 技能进行推理,并内联展示 Coverage、SuccessCount、FailureCount 和 QualityGateStatus,不向用户展示原始 JSON。
使用方式
前置条件
- 需要有效的 runId(由 running-devops-test-suite 技能返回)。
- 需要已确认的 doce-org-alias。
- 如果组织上下文尚未建立,先加载 checking-devops-prerequisites(前置条件 1–3)。
所需输入
- runId:由 running-devops-test-suite 技能返回。
- testType:根据套件的测试提供方推导(Apex、Code Analyzer、UI/Provar、Flow)。
- doce-org-alias:通过 checking-devops-prerequisites 建立。
轮询配置
- Apex 单元测试:轮询间隔 15 秒,最大等待 5 分钟,超时动作:展示 runId,提供重试。
- Code Analyzer:轮询间隔 10 秒,最大等待 3 分钟,超时动作:展示 runId,提供重试。
- UI 测试(Provar):轮询间隔 60 秒,最大等待 20 分钟,超时动作:展示 runId,标记为待处理。
- Flow 测试:轮询间隔 20 秒,最大等待 8 分钟,超时动作:展示 runId,提供重试。
轮询查询
在每个间隔按 runId 查询执行记录:
sf data query \
--query "SELECT Id, Status, TestsRan, TestsPassed, TestsFailed, CoveragePercentage FROM DevopsTestExecution WHERE Id = '<runId>' LIMIT 1" \
--target-org <doce-org-alias> \
--json
每次轮询检查 Status 字段:
- Queued / Running → 等待并再次轮询
- Completed → 进入结果分析
- Failed → 展示错误并提供重试或跳过
超时处理
向用户展示 runId:
"The test run is taking longer than expected. Your run ID is <runId>. You can check the status manually in DevOps Center, or I can keep waiting — what would you prefer?"
超时后不要自动重试,等待用户指示。
完成处理
将完整结果负载传递给 analyzing-test-failures 技能进行推理。内联展示 Coverage、SuccessCount、FailureCount 和 QualityGateStatus。不要向用户展示原始 JSON。
适用场景
- 在 DevOps Center 中启动异步测试执行后,需要等待并获取执行结果。
- 需要根据测试类型自动调整轮询节奏,避免频繁查询或等待过久。
- 测试执行失败或超时后,需要向用户提供 runId 以便手动检查或决定后续操作。
- 测试完成后,需要将结果交给失败分析技能进行进一步处理。
限制
- 需要有效的 runId 和已确认的 doce-org-alias,否则无法执行。
- 如果组织上下文未建立,需先加载 checking-devops-prerequisites。
- 超时后不会自动重试,必须等待用户指示。
- 不向用户展示原始 JSON,只展示关键指标。
- 轮询为只读操作,不修改任何数据。
相关技能
- 运行由 running-devops-test-suite 启动(包括其重新触发模式)。
- 失败分析由 analyzing-test-failures 处理。