Обновите ссылку на сборку для результата теста в API Azure DevOps REST - PullRequest
1 голос
/ 13 июня 2019

У меня есть существующий результат теста, и я хотел бы обновить поле «Тестированная сборка» для результата теста, если это возможно. Я посмотрел на документ REST API (https://docs.microsoft.com/en-us/rest/api/azure/devops/test/results/update?view=azure-devops-rest-5.0) и думаю, что правильно вызвал метод PATCH, но при возврате 200 результат теста в пользовательском интерфейсе не меняется с «недоступно»). .

Есть ли способ изменить это поле или оно доступно только для чтения?

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)

1 Ответ

0 голосов
/ 14 июня 2019

правильно вызвал метод PATCH, но пока возвращается 200, результат теста в пользовательском интерфейсе не изменяется с «недоступно».

Чтобы объяснить это, сначала нужно узнать, что определяет код ответа 200OK:

"Он представляет собой стандартный ответ для успешных запросов HTTP. Фактический ответ будет зависеть от используемого метода запроса.

Как говорится, 200OK просто означает, что URL, тело и метод вашего запроса верны и запрос выполнен успешно. Но для действительного put/patch действия это зависит от реальной ситуации. Таким образом, 200OK также не означает, что операция завершена и выполнена успешно.

enter image description here

Итак, для поля «Тестированная сборка» для результата теста в Devure Dev,

Есть ли способ изменить это поле или оно доступно только для чтения?

Нет, вы не можете изменить его с помощью API, даже если с UI. Только для чтения.

Знаете, после завершения выполнения теста сборка, связанная с этим тестом, исправлена, это фактическая истина. Таким образом, вы не можете изменить его, он только для чтения, чтобы рассказать вам, что тестируется сборка.

...