TFS Rest API: параметры параметров для фильтрации результатов теста не работают - PullRequest
0 голосов
/ 25 апреля 2018

Мы работали с TFS REST API.Наша цель состоит в том, чтобы получить результаты теста из определенного прогона теста и вернуть только неудачные тесты.

В этой документации указано использование параметра "исходы", но когда мы добавляем этот параметроперация GET по-прежнему возвращает все результаты теста, включая пройденные.

Мы используем версию 2.0, но мы не можем найти документацию, специфичную для этой версии.

Это примернаш звонок.

https://<server>/tfs/<collection>/<project>/_apis/test/Runs/<run id>/results?api-version=2.0&outcomes=Failed

Любая помощь о том, как работает эта фильтрация (или окончательный ответ, если это не работает для версии 2.0), очень ценится.

1 Ответ

0 голосов
/ 26 апреля 2018

Протестировано на моей стороне, кажется, что оно недоступно для предыдущих версий API (протестировано на TFS 2017 и 2018, оба не работают).

Документация , упомянутая с api-version=5.0-preview.5, возможно, она будет доступна в более поздних выпусках.

Однако вы можете фильтровать результаты теста по результатам, используя PowerShell с REST API, см. Образец ниже:

Param(
   [string]$collectionurl = "http://server:8080/tfs/DefaultCollection", 
   [string]$project = "ProjectName",
   [string]$testrunID = 223,
   [string]$user = "username",
   [string]$token = "password"
)

# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

$baseUrl = "$collectionurl/$project/_apis/test/runs/$testrunID/results?api-version=3.0-preview"
$response = Invoke-RestMethod -Uri $baseUrl -Method Get -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
$results = $response.value | Where {$_.outcome -eq "Failed"} #| Filter the test results by outcomes


$TestResults = @()

foreach ($result in $results)
{

$customObject = new-object PSObject -property @{
          "TestResultID" = $result.id
          "projectName" = $result.project.name
          "testCaseName" = $result.testCase.name
          "startedDate" = $result.startedDate
          "completedDate" = $result.completedDate
          "outcome" = $result.outcome
          "state" = $result.state
          "runBy" = $result.runBy.uniqueName
          "errorMessage" = $result.errorMessage
        } 

    $TestResults += $customObject
}

$TestResults | Select `
                TestResultID,
                projectName, 
                testCaseName,
                startedDate,
                completedDate,
                outcome,
                state,
                runBy,
                errorMessage #|export-csv -Path D:\temp\TestResult.csv -NoTypeInformation # Export to .csv file

enter image description here

...