【问题标题】:Update build reference for test result in Azure DevOps REST API更新 Azure DevOps REST API 中测试结果的生成参考
【发布时间】:2019-06-13 17:57:34
【问题描述】:

我有一个现有的测试结果,如果可能,我想更新测试结果的“已测试构建”字段。我查看了 REST API 文档 (https://docs.microsoft.com/en-us/rest/api/azure/devops/test/results/update?view=azure-devops-rest-5.0),我认为我已经正确调用了 PATCH 方法,但是当返回 200 时,UI 中的测试结果不会因“不可用”而改变。

有没有办法改变这个字段还是只读的?

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

Auth: PAT for user who has Test Plans license

JSON request body: 
[
    {
        "id": "100000",
        "build": {
            "id": "206",
            "name": {buildDefinitonName},
            "url": "https://dev.azure.com/{org}/{projectguid}/_apis/build/Builds/206"
        }
    }
]

JSON response body: 
{
    "count": 1,
    "value": [
        {
            "id": 100000,
            "project": {},
            "lastUpdatedDate": "2019-06-13T17:18:56.073Z",
            "priority": 0,
            "url": "",
            "lastUpdatedBy": {
                "displayName": null,
                "id": null
            }
        }
    ]
}

我也尝试过使用 .NET SDK,但没有成功:

...
var build = await buildClient.GetBuildAsync(projectGuid, 206);

var testResult = await testClient.GetTestResultByIdAsync(projectGuid, {runId}, 100000);

testResult.Build = new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference
     {
         Id = build.Id.ToString(),
         Name = build.Definition.Name,
         Url = build.Url
     };

TestCaseResult[] results = new TestCaseResult[] { testResult };

var outcome = await testClient.UpdateTestResultsAsync(results, teamProject, {runId});

(结果显示 Build = null)

【问题讨论】:

  • 我的回答现在能解决你的困惑吗?随时让我们知道最新状态:-)

标签: c# azure-devops azure-devops-rest-api


【解决方案1】:

正确调用了 PATCH 方法,但是在返回 200 时, UI 中的测试结果不会因“不可用”而改变。

要解释这个,首先要知道响应码200OK定义了什么:

" 代表成功HTTP请求的标准响应。实际响应取决于使用的请求方法。

正如它所说,200OK 只是意味着您的请求 URL、正文和方法都正确并且请求成功。但是,对于实际put/patch 的操作,还要视实际情况而定。所以200OK也不代表操作已经完成并成功。

因此,对于 Azure Devops 中测试结果的“Tested build”字段,

有没有办法改变这个字段还是只读的?

不,您无法使用 API 更改它,即使使用 UI 也是如此。它只是只读的。

您知道,在测试执行结束后,与该测试相关的构建是固定的,这就是事实。所以,你不能改变它,它只是告诉你什么是测试版本。

【讨论】:

    猜你喜欢
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 2019-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多