Есть ли простой способ связать снимки экрана с результатами тестирования в стиле XUNIT, созданными Robot Framework, и загрузить их на вкладку «Тест» с помощью задачи «Опубликовать результаты теста» в Azure Pipelines?

Аналогично тому, как он работает с файлами результатов VSTS.

Заранее спасибо.

0
FransPeterson 29 Июн 2020 в 17:37

1 ответ

Лучший ответ

Боюсь, что нет простого способа достичь вышеизложенного.

В качестве обходного пути можно использовать Создать приложение с результатами теста rest api, чтобы обновить снимок экрана как приложение к тесту.

POST https://dev.azure.com/{organization}/{project}/_apis/test/Runs/{runId}/Results/{testCaseResultId}/attachments?api-version=5.1-preview.1

Для использования выше создайте вложение rest api с результатами теста. Вам нужно вызвать тест запроса запускает rest api, чтобы получить runId

GET https://dev.azure.com/{organization}/{project}/_apis/test/runs?buildIds={buildIds}&buildDefIds={buildDefIds}&api-version=5.1

Затем вам нужно будет вызвать список api результатов тестирования, чтобы получить testCaseresultId

GET https://dev.azure.com/{organization}/{project}/_apis/test/Runs/{runId}/results?api-version=5.1

Таким образом, вы можете добавить задачу сценария в свой конвейер для запуска над rest apis. См. Пример ниже:

- powershell: |  
    $url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/test/runs?buildIds=1417&buildDefIds=8&api-version=5.1"
    $runs = Invoke-RestMethod -Uri $url -Headers @{authorization = "Bearer $(system.accesstoken)"} -ContentType "application/json" -Method get
    $runId = $runs.value[-1].id
    
    #get testCaseresultId
    $resuilturl = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/test/Runs/$($runId)/results?api-version=5.1"
    $results = Invoke-RestMethod -Uri $resuilturl -Headers @{authorization = "Bearer $(system.accesstoken)"} -ContentType "application/json" -Method get
    #for example get first testCaseresultId 
    $testCaseResultId = $results.value[0].id
   
    #create test result attachment.
    $atturl = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/test/Runs/$($runId)/Results/$($testCaseResultId)/attachments?api-version=5.1-preview.1"

    $body='{
             "stream": "VXNlciB0ZXh0IGNvbnRlbnQgdG8gdXBsb2FkLg==",
             "fileName": "$(System.DefaultWorkingDirectory)/screenshot-1.png",
             "comment": "Test attachment upload",
             "attachmentType": "GeneralAttachment"
           }'
     
   Invoke-RestMethod -Uri $atturl -Headers @{authorization = "Bearer $(system.accesstoken)"} -ContentType "application/json" -Method post -Body $body
0
Levi Lu-MSFT 30 Июн 2020 в 09:19