关于 managing-suite-assignments
用于 Salesforce DevOps 测试的技能,可将测试套件分配到流水线阶段或同步套件变更。它为单次分配、批量映射和类更新规定确认流程,并使用统一 API。
主要功能
- 01将单个套件分配到阶段
- 02添加或移除多个套件映射
- 03同步套件中的测试类
- 04API 变更前要求确认
- 05按状态码提供错误提示
适用场景
- 01将现有套件关联到流水线阶段
- 02更新测试策略中的套件映射
- 03将审核后的测试纳入套件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill managing-suite-assignments安装后在 Claude Code 中输入/managing-suite-assignments确认已加载。
详细介绍
管理测试套件分配
前提条件
请先加载 checking-devops-prerequisites — 前提条件 1–4 和前提条件 5(阶段)。在任何模式下继续操作之前,都需要 doce-org-alias、pipelineId 和 stageId。
| 变量 | 说明 |
|---|---|
doce-org-alias | 在前提条件 1 中确定 |
pipelineId | 在前提条件 4(流水线选择)中确定 |
stageId | 在前提条件 5(阶段选择)中确定 |
event | Pre-Promote、Post-Promote 或 Review |
模式 A — 将单个测试套件分配到一个阶段
当相关测试套件已存在,但尚未关联到流水线阶段,且用户希望一次性将其添加到该阶段时,请使用此模式。
还需要提供以下输入:
| 变量 | 说明 |
|---|---|
testSuiteId | 要分配的测试套件 ID |
testSuiteName | 测试套件名称(用于确认信息) |
确认关卡
进行任何 API 调用之前,必须先获得确认。
向用户显示以下提示并等待肯定答复:
“测试套件
<testSuiteName>当前尚未分配到<stageName>阶段(<event>)。要现在分配吗?”
用户确认后方可继续。
成功时
向用户报告:
“测试套件
<testSuiteName>已分配到<stageName>阶段(<event>)。”
模式 B — 将多个测试套件映射到一个阶段
在配置跨流水线的测试套件到阶段的映射,或作为测试策略的一部分将多个测试套件分配到多个阶段时,请使用此模式。
还需要提供以下输入:
| 输入 | 说明 |
|---|---|
testSuiteOperations | {testSuiteId, action: "add"|"remove"} 列表 |
必须执行影响预览 — 更改前必须完成
用户确认以下预览之前,不得调用 API。
向用户显示完整的映射摘要并等待明确确认:
“以下是我将应用的测试套件映射:
测试套件 阶段 事件 操作 <suiteName><stageName><event>添加 <suiteName2><stageName><event>移除 确认应用所有更改?”
只有在用户明确确认后才能继续。
成功时
“测试套件映射已应用。
<N>个测试套件已针对<stageName>阶段更新。”
模式 C — 在测试套件中添加/移除测试类
当用户希望在现有测试套件分配中添加或移除单个测试类、将审核过的测试同步到测试套件,或将测试提升到测试套件时,请使用此模式。
还需要提供以下输入:
| 输入 | 来源 |
|---|---|
testSuiteOperations | {testSuiteId, action: "add"|"remove"} 列表 |
治理规则
- 未经明确批准,绝不可调用此项。 在进行此调用之前,必须重新向用户展示由 AI 审核或修改过的测试。
- 必须从请求内容中排除被拒绝的测试 — 即使它们之前已在测试套件中,也不得包含。
- 如果测试在审核过程中经过修改,请在请求确认前重新展示最终测试列表。
确认关卡
必须执行 — 不得跳过。 调用前向用户展示完整的更改列表:
“我即将将以下更改同步到测试套件:
- 添加:
<testSuiteName1>、<testSuiteName2>- 移除:
<testSuiteName3>- 阶段:
<stageName>| 事件:<event>确认?”
收到明确确认后方可继续。
成功时
向用户确认:
“
<stageName>阶段的测试套件已成功更新。”
系统调用
三种模式使用相同的端点。执行前,请替换所有 <placeholder> 值。
sf api request rest "/services/data/v67.0/connect/devopstesting/pipeline/<pipelineId>/testSuiteStages" --method POST --body '{"pipelineStageId":"<stageId>","event":"<event>","assignments":[{"testSuiteId":"<id>","action":"add|remove"}]}' --target-org <doce-org-alias>
完整载荷架构:
{
"pipelineStageId": "<stageId>",
"event": "<event>",
"assignments": [
{"testSuiteId": "<suiteId1>", "action": "add"},
{"testSuiteId": "<suiteId2>", "action": "remove"}
]
}
错误处理
切勿向用户透露原始 API 错误消息。将响应状态码映射为以下面向用户的消息:
| 状态 | 面向用户的消息 |
|---|---|
| 400 | "请求无效。请检查所有套件和阶段 ID 是否正确,以及事件类型是否有效。" |
| 403 | "你没有权限修改此流水线上的套件分配。" |
| 404 | "未找到该流水线或阶段。" |
| 500 | "发生了服务器错误。请几分钟后重试。" |
相关技能
syncing-test-providers— 如果要分配的套件尚未显示,请使用此技能;重新同步提供商会拉取新添加的套件。recommending-devops-tests— 如果尚未确定套件,且需要推荐要分配的套件,请使用此技能。configuring-quality-gate— 映射套件后,使用此技能在阶段上配置质量门禁。analyzing-test-failures— 使用此技能分析套件中的测试失败并获取改进建议。