You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从TFS/VSTS服务器测试用例中获取并修改Resolution字段

嘿,我之前也踩过这个坑!TFS的REST API里,Resolution字段可不是直接挂在测试用例上的,这也是为啥你GET请求拿不到、PATCH也改不动的原因。下面给你梳理清楚怎么解决:

解决TFS REST API无法获取/修改Resolution字段的问题

一、先搞懂:Resolution到底属于哪个实体?

首先得明确:Resolution是测试执行结果(Test Result)的属性,不是测试用例(Test Case)本身的属性。测试用例是静态的模板,而Resolution是测试跑完后标记失败类型的字段,所以常规的测试用例GET请求自然不会返回它。

二、正确获取Resolution字段的两种方法

方法1:直接请求测试结果端点(最推荐)

找到对应测试运行(Test Run)的ID,然后调用测试结果的API,就能直接拿到Resolution字段:

GET https://{你的TFS服务器地址}/DefaultCollection/{项目名}/_apis/test/runs/{测试运行ID}/results?api-version=5.1

返回的响应里会包含resolution字段,值就是你提到的Unknown、Testerror、ProductError这些枚举值。

方法2:从测试用例关联关系中扩展获取

如果需要从测试用例的关联数据里拉取,也可以用$expand参数加载测试结果关联,但这种方式不如直接请求测试结果直观:

GET https://{你的TFS服务器地址}/DefaultCollection/{项目名}/_apis/wit/workitems/{测试用例ID}?$expand=relations&api-version=5.1

在返回的relations数组里,找到类型为TestResult的关联项,里面会包含Resolution的信息。

三、通过PATCH修改Resolution字段

同样,修改操作要针对测试结果,而不是测试用例:

  1. 构造JSON Patch格式的请求体,指定要替换的Resolution值:
[
  {
    "op": "replace",
    "path": "/resolution",
    "value": "ProductError" // 可选值:Unknown、Testerror、ProductError
  }
]
  1. 发送PATCH请求到测试结果的端点:
PATCH https://{你的TFS服务器地址}/DefaultCollection/{项目名}/_apis/test/runs/{测试运行ID}/results/{测试结果ID}?api-version=5.1
Content-Type: application/json-patch+json

四、几个关键注意事项

  • 权限要够:确保你的账号有测试结果的编辑权限(比如Test Manager角色),不然会返回403错误。
  • 用较新的API版本:建议用5.1及以上的版本,旧版本可能不支持部分字段的操作。
  • 别搞混实体:一定要区分测试用例(静态模板)和测试结果(执行后的动态数据),这是最容易踩的坑!

内容的提问来源于stack exchange,提问作者Kristofer Mar Einarsson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:37:35