我正在将我们的一个项目转换为使用Azure DevOps而不是AppVeyor for CI。作为构建的一部分,我们使用自定义测试运行器来执行某些测试。
[在AppVeyor中运行时,我们直接从测试运行器调用REST API,以将正在运行的测试通知构建服务器并更新其状态。如Add Tests和Update Tests文档的REST部分所示,这非常简单,并为我们与AppVeyor的UI集成提供了很好的集成。
我一直在研究如何在Azure DevOps中执行相同的操作。我已经找到adding和updating测试结果的REST API部分。从API文档中还不能完全清楚这是否是我正在运行的管道中使用的,或者是否用于其他情况。我一直在寻找其他尝试做同样事情的人,但到目前为止没有任何运气。大多数示例都谈论上传测试结果文件,但这似乎是发布测试结果的一种间接方法,特别是因为我想在运行所有测试之前先注册它们,然后在完成时更新其状态。
有人在构建期间使用Azure DevOps API发布测试结果方面有任何指针或示例吗?
您非常接近答案。请参阅此文档:Surface test results in the Tests tab。
除了通过任务发布测试结果,例如发布测试结果任务,VS测试等。我们还提供了一种通过Rest api上传结果的方法:
要实现所需的功能,必须先使用一个已知的内部版本号创建一个测试运行,然后将测试结果发布到该测试中。
buildID
。示例:
POST https://dev.azure.com/{org name}/{project}/_apis/test/Runs/{runId}/results?api-version=5.0
{
"name": "NewTest",
"build": { "id": "162" },
"isAutomated": true,
"state": "Waiting"
}
运行测试,以便可以得到测试结果。
现在,将此新测试结果发布到先前创建的测试中。
[{“ testCaseTitle”:“ ReferBuild”,“ automatedTestName”:“ ReferBuildAuto”,“优先级”:1,“结果”:“通过”}]
这里您可以参考doc中显示的示例。