如何通过REST API获取Azure Build Pipeline的测试运行记录
问题根因
调用接口返回空列表的核心原因是buildUri参数传值错误,该参数不接受纯数字格式的Build ID,要求传入构建资源的完整标识符URI,格式固定为vstfs:///Build/Build/{BuildID},仅传入数字ID无法匹配到关联的测试运行记录。
之前拉取全量测试运行时返回结果的Build属性为空,是因为列表接口默认不展开关联构建详情,只有传入合法的buildUri做过滤时,返回结果才会自动填充关联的构建信息。
高效查询方案
不需要拉取项目全量测试运行再逐条过滤,可直接用以下两种方式实现需求:
- 按构建ID获取关联的所有测试运行记录
修正原接口的buildUri参数传值即可直接返回目标结果,无需二次调用单测试运行详情接口,调用示例如下:GET https://dev.azure.com/{organization}/{project}/_apis/test/runs?buildUri=vstfs:///Build/Build/{替换为你的纯数字BuildID}&$top=100&api-version=6.0 - 一步获取单次构建的全量测试结果明细
如果不需要先获取测试运行(run)维度的信息,要直接拿到所有测试用例的执行结果,可以直接调用原生支持BuildID过滤的测试结果接口,调用链路更短:GET https://dev.azure.com/{organization}/{project}/_apis/test/results?buildId={替换为你的纯数字BuildID}&api-version=6.0
补充说明:如果接口传值正确仍返回空,请先确认对应构建流水线的测试任务已执行完成,且测试结果已完成发布,运行过程中的测试任务不会即时生成可查询的test run记录。
内容的提问来源于stack exchange,提问作者Jared Strong
相关产品推荐
相关产品推荐

