rest - TFS Rest API:过滤测试结果的参数结果不起作用
问题描述
我们一直在修补 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 版,则提供明确的答案)。
解决方案
在我这边测试,似乎它不适用于以前的 API 版本(在 TFS 2017 和 2018 上测试,两者都不起作用)。
中提到的文档api-version=5.0-preview.5
,可能会在以后的版本中提供。
但是,您可以使用带有 REST API 的 PowerShell 按结果过滤测试结果,请参见以下示例:
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
推荐阅读
- googletest - 当所有单独的测试都通过时,为什么我的 Bazel 测试报告失败?
- java - 带有 thymleaf 视频播放任务的 Spring Boot
- python - Pandas:使用模糊匹配从 2 个不同的数据帧创建一个新的数据帧
- reactjs - npm start 给出错误 `webpack-dev-server: not found` 即使它已安装
- ios - 如何在同一个 UITableViewVibrantCell 中加载两个不同的动态表格视图单元格
- asp.net-core - 带有dapper包的asp.net核心中的多行插入
- ruby - 如何使用 ruby 为 Azure DevOps 项目创建工作项(任务、错误等)?
- c# - 带有自定义名称的 MVC APIController
- json - ngFor 用于复杂的 json
- ios - 如何在 SwiftUI 中使用 TabbedView?