VSTS - публикация результатов тестирования от сборки до конечной точки API - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно опубликовать результаты теста (например, количество пройденных / неудачных тестов) в API отчетов. Я думал опубликовать результаты в XML и добавить шаг PowerShell, чтобы прочитать и извлечь информацию из XML-файла и сделать запрос на публикацию в API.

enter image description here

Кто-нибудь пробовал этот способ или есть лучший способ добиться того же?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Я так и сделал.

enter image description here

Мне не нужна была задача «Опубликовать результаты теста», поскольку задача «Сборки тестов» уже выполняется.

Результаты теста публикуются в виде файла .trx, так как я использую xUnit в качестве среды тестирования.

Мой скрипт powershell выглядит примерно так.

[Reflection.Assembly]::LoadFile("$Env:BUILD_SOURCESDIRECTORY\<ProjectFolder>\Scripts\Newtonsoft.Json.dll")

$resultFiles = Get-ChildItem -Path ".\TestResults\*.trx"      

foreach ($resultFile in $resultFiles) {
    Write-Output $resultFile

    $data = [xml](Get-Content $resultFile)    
    $json = [Newtonsoft.Json.JsonConvert]::SerializeXmlNode($data)
    $json = $json -replace '"@', '"'

    Invoke-WebRequest -Uri "https://my-azure-function/api/VstsWebhook?buildId=$Env:BUILD_BUILDID&buildNumber=$Env:BUILD_BUILDNUMBER&code=<secret>" -Method POST -ContentType 'application/json' -Body $json
}

Надеюсь, это поможет другим в такой же ситуации.

0 голосов
/ 05 сентября 2018

Если вы хотите разместить дополнительную службу, вы можете опубликовать результаты теста в качестве артефакта сборки и получить к нему доступ через API-интерфейс VSTS, затем проанализировать его и затем опубликовать в целевом API https://docs.microsoft.com/en-us/rest/api/vsts/build/artifacts/get?view=vsts-rest-4.1

GET https://{accountName}.visualstudio.com/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&api-version=4.1

Если вы решите проанализировать результаты теста в задаче сборки с powershell, вы можете использовать задачи сборки, чтобы выполнить вызов API к конечной точке API назначения.

...