我正在测试一个项目并且我的所有测试用例都在MTM中,我正在寻找一种方法来将我们在MTM中获得的所有测试结果提取到一个单独的文件中,有没有办法去做 ?如果您有任何想法,请分享 非常感谢
答案 0 :(得分:0)
如果您希望导出自动运行的结果,可以从附件部分下载.trx
(测试运行执行)文件,并使用XSL
和XSLT
创建来自它的html报告(您也可以使用命令行工具tcm.exe run /export
来获取.trx文件)。
但是如果你通过手动执行创建了测试运行,那么这是不可能的。获取“结果文件”的唯一方法是使用TFS API解析测试运行的结果(通过TfsTeamProjectCollection
中的Microsoft.TeamFoundation.TestManagement.Client
在C#或Powershell中解析,并将其存储在文件中。
或者您可以将TFS Rest-API与此PowerShell脚本一起使用(另存为.ps),它允许您查询JSON并提取所需数据并以您希望的方式显示:
$RunId = Read-Host -Prompt "TFS Run Id"
$Url = "http://<tfsurl>/tfs/<CollectionName>/<TeamProject>/_apis/test/runs/$RunId/results"
$Client = New-Object System.Net.WebClient
$Client.Credentials = New-Object System.Net.NetworkCredential("<username>", "<password>", "<domain>")
$Json = $Client.DownloadString($Url) | ConvertFrom-Json
$Dict = @{}
ForEach($Test in $Json.value)
{
$Key = "Run " + $Test.testRun.name + " [" + $Test.testRun.id + "]"
$Val = $Test.testCase.name + " [" + $Test.testCase.id + "]" + " = " + $Test.outcome
if (!$Dict.ContainsKey($Key))
{
$List = New-Object System.Collections.ArrayList
$Dict.Add($Key, $List)
}
$IgnoreIndex = $Dict[$Key].Add($Val)
}
ForEach($Key in $Dict.Keys)
{
Write-Host $Key
ForEach($Val in $Dict[$Key])
{
Write-Host $Val
}
}
Exit
(用你的&lt; xxx&gt;替换值)