Невозможно обновить состояние тестового запуска до завершения через API - PullRequest
0 голосов
/ 16 октября 2019

Мы использовали curl с VSTS / Azure API v5.1 для создания тестовых запусков, результатов тестов и установки тестовых запусков с состоянием «завершено» в течение длительного времени.

В течение последних нескольких недель наши запросы на исправление состояния testrun до «выполнено» из «inProgress» не были приняты.

(Тем не менее, мы можем использовать тот же запрос для обновления других атрибутов testrun, таких как значение для комментария)

В документации все еще упоминаются допустимые значения для состояния:

https://docs.microsoft.com/en-us/rest/api/azure/devops/test/runs/update?view=azure-devops-rest-5.1#updating-started-date

Можете ли вы выполнить тесты с помощью 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

Ответы [ 3 ]

1 голос
/ 18 октября 2019

Я выполняю тестирование с помощью следующего сценария в задаче PowerShell Azure Devops и могу успешно изменить любое состояние тестового запуска на Завершено.

$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
0 голосов
/ 22 октября 2019

Спасибо всем за помощь. Я могу подтвердить, что наша команда curl, запущенная в CMD, теперь успешно устанавливает состояние testrun как «завершено». Как упоминалось ранее, он мог изменять другие аспекты записи тестового запуска (например, комментарий), но в течение последних нескольких недель не влиял на состояние. Сейчас государство тоже обновляется. Это наводит на мысль, что проблема, вероятно, была не на нашей стороне, так как наш запрос curl api не изменился. Рад видеть, что это решено все же.

0 голосов
/ 18 октября 2019

Я могу успешно обновить состояние до Completed через REST API:

PATCH https://dev.azure.com/{organizaion}/{project}/_apis/test/runs/{runid}?api-version=5.1

Request Body:
{
  "state": "Completed"
}

Но оно только обновило состояние тестового прогона, если результат не Passed, тогда будет треугольниквосклицательный знак рядом с завершенным состоянием. Таким образом, чтобы полностью обновить состояние, мы должны обновить результат теста outcome до Passed:

PATCH https://dev.azure.com/{organization}/{project}/_apis/test/runs/{runid}/Results?api-version=5.1

Request body:
[
  {
    "id": 100000,
    "outcome": "Passed"
  }
]

enter image description here

...