通过Rest API向Azure DevOps测试计划自定义字段写入值失败问题咨询
问题排查与解决方案
一、自定义字段不生效问题
- 首先确认你所属的项目已切换到你创建的继承进程:自定义字段仅对绑定了该继承进程的项目生效,若项目仍使用系统默认进程(Agile/CMMI/Scrum等),新增的自定义字段不会生效。
- 修正字段路径的写法:你当前代码中路径写的是
/fields/System.TeamName,这是错误的。System前缀是Azure DevOps内置字段的专属前缀,你自定义的字段引用名格式为Custom.xxx,所以正确路径应为/fields/Custom.TeamName。 - 调整GET接口的请求参数:调用Work Item查询接口时,需要添加
$expand=fields参数,才能返回所有自定义字段的内容。
二、创建Test Plan后无默认Test Suite问题
该问题的核心原因是接口使用错误:Test Plan虽然属于Work Item类型,但直接使用WorkItemTrackingHttpClient创建仅生成基础Work Item记录,不会触发测试模块的后置逻辑,因此不会自动生成根Test Suite,也无法正常在Test Plans模块中关联测试用例、测试套件。
正确的做法是使用专门的Test Plan管理接口操作,示例代码如下:
using Microsoft.VisualStudio.Services.TestManagement.TestPlanning.WebApi; using Microsoft.VisualStudio.Services.WebApi; // 构造Test Plan创建参数 var testPlanCreateParams = new TestPlanCreateParams { Name = "你的测试计划名称", AreaPath = "项目区域路径", Iteration = "项目迭代路径", // 自定义字段赋值,直接填引用名作为key CustomFields = new Dictionary<string, object> { {"Custom.TeamName", "Xander"} } }; // 获取TestPlanHttpClient客户端 TestPlanHttpClient testPlanClient = connection.GetClient<TestPlanHttpClient>(); // 调用创建接口 TestPlan createdPlan = testPlanClient.CreateTestPlanAsync(testPlanCreateParams, "你的项目名称").Result;
额外验证步骤
创建完成后可进入Azure DevOps前端的Test Plans模块,查看对应测试计划的详情,确认自定义字段已赋值、根Test Suite已自动生成。
内容的提问来源于stack exchange,提问作者Xenophon
相关产品推荐
相关产品推荐

