我们一直在使用curl和VSTS / Azure API v5.1来创建测试运行,发布测试结果并将测试运行设置为“已完成”状态已有一段时间。
在过去的几周中,我们未提交将测试运行状态从“ inProgress”修补为“已完成”的请求。
(但是我们可以使用相同的请求来更新其他testrun属性,例如'comment'的值)
文档中仍然提到可以提供状态的可接受值:
您是否可以通过API完成测试运行?谢谢
curl -k -H "Content-Type: application/json" -H "Authorization: Basic {token}" --request PATCH -d "{'state':'Completed','build':{'id': 0},'comment':'an updated comment'}" https://dev.azure.com/etc/etc/_apis/test/runs/{testrunID}?api-version=5.1
答案 0 :(得分:1)
我在azure devops的PowerShell任务中使用以下脚本进行了测试,并且可以成功地将testrun的任何状态修改为Completed。
$connectionToken="your token"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
curl.exe -k -H "Content-Type: application/json" -H "Authorization: Basic $base64AuthInfo" --request PATCH -d "{'state':'Completed','comment':'an updated comment'}" https://dev.azure.com/{org}/{pro}/_apis/test/runs/{runId}?api-version=5.1
答案 1 :(得分:0)
我可以通过REST API成功将状态更新为Completed
:
PATCH https://dev.azure.com/{organizaion}/{project}/_apis/test/runs/{runid}?api-version=5.1
Request Body:
{
"state": "Completed"
}
但是它仅更新了测试运行状态,如果结果不是Passed
,则在Completed状态附近会出现一个三角形的感叹号。
因此,要完全更新状态,我们必须将测试结果outcome
更新为Passed
:
PATCH https://dev.azure.com/{organization}/{project}/_apis/test/runs/{runid}/Results?api-version=5.1
Request body:
[
{
"id": 100000,
"outcome": "Passed"
}
]
答案 2 :(得分:0)
谢谢大家的帮助。我可以确认我们在CMD中运行的curl命令现在已成功将testrun状态设置为“ completed”。如前所述,它能够更改测试运行记录的其他方面(例如,评论),但最近几周并未影响状态。现在状态也在更新。这将向我表明问题可能不属于我们,因为我们的curl API请求没有更改。很高兴看到它已解决。