При массовой загрузке тестовых примеров в Azure DevOps я хочу, чтобы каждый тестовый пример был связан с существующей пользовательской историей с типом ссылки Tested By
.
Это возможно?
Вы можете использовать команду добавления отношения рабочего элемента az boards, чтобы связать тестовый пример с рабочим элементом.
Пример (не проверялся):
az boards work-item relation add \
--relation-type "Tested By" \
--id $testCaseID \
--target-id $workItemID \
--organization $organization
Значения для --relation-type
можно найти, запустив az boards тип списка отношений рабочих элементов (список связей рабочих элементов, поддерживаемых в организации).
В соответствии с этим документом о том, как Импортировать и обновлять массовые рабочие элементы с помощью файлов CSV
Вы можете добавить связи «родитель-потомок» между импортируемыми рабочими элементами, установив отступы в столбцах заголовков, как показано в примере ниже в этой статье. Могу ли я импортировать CSV-файл, в котором есть ссылки «родитель-потомок»?. Однако вы не можете указать другие типы ссылок при импорте или обновлении рабочих элементов.
Чтобы добавить несколько ссылок Tested by
с несколькими тестовыми примерами в определенную пользовательскую историю, мы можем использовать этот запрос REST API для добавления ссылок.
Вот пример сценария PowerShell для справки.
$organization = "YourADOOrgName"
$project = "TheProjectName"
$MyPat = 'xxxxxx'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":$MyPat"))
$headers = @{
'Authorization' = 'Basic ' + "$B64Pat"
'Content-Type' = 'application/json-patch+json'
}
$userStoryId = '2314'
$storyURL = "https://dev.azure.com/$organization/_apis/wit/workitems/${userStoryId}?api-version=7.2-preview.3"
$testCaseIds = @(
2315
2319
)
$body = @()
foreach ($testCaseId in $testCaseIds) {
$body += @{
op = "add"
path = "/relations/-"
value = @{
rel = "Microsoft.VSTS.Common.TestedBy-Forward"
url = "https://dev.azure.com/$organization/$project/_apis/wit/workItems/$testCaseId"
attributes = @{
isLocked = $false
name = "Tested By"
}
}
}
}
$jsonBody = ConvertTo-Json $body -Depth 10
$jsonBody
Invoke-RestMethod -Method Patch -Uri $storyURL -Headers $headers -Body $jsonBody