如何在Azure自动管道中使用API​​请求结果获取?

时间:2019-11-25 09:30:12

标签: azure azure-devops azure-pipelines azure-rest-api

我正在尝试发送有关Azure管道构建中的测试失败的详细电子邮件通知。我正在此线程中遵循建议:How to send a detailed email to specific developer from Azure DevOps on failure of unit tests from a Build pipeline? 我看到了以下示例请求

GET https://dev.azure.com/{organization}/{project}/_apis/test/Runs/{runId}/results/{testCaseResultId}?api-version=5.0

如何获取'runId'和'testCaseResultId'的值?我的管道中是否可以使用任何环境变量来自动替换其值?

有人可以建议我使用Result-Get的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试使用this Rest API获得测试运行的测试结果。 runIdtestCaseResultId参数都是必需的。

但是,您正在尝试在构建/发布管道中获取它。此API不适用于您的情况。由于构建仍在运行,因此未完成。因此,您需要通过构建/发布任务日志获取它

Releases - Get Task Log

我们曾经使用以下API为该版本获取测试结果
GET https://{instance}/{project}/_apis/ResultDetailsByRelease?releaseId={RELEASE.RELEASEID}&releaseEnvId={RELEASE.ENVIRONMENTURID}

测试结果包括testRun ID或仅通过使用过滤器获得失败的测试,
GET https://{instance}/{project}/_apis/ResultDetailsByRelease?releaseId={RELEASE.RELEASEID}&releaseEnvId=RELEASE.ENVIRONMENTURID}&%24filter=Outcome+eq+Failed

类似于build-Timeline - Get