2016-09-23 77 views
0

我正在測試一個項目,我所有的測試用例都在MTM中,我正在尋找一種方法來提取我們在MTM中的所有測試結果在一個單獨的文件中,有沒有辦法做到這一點?如果要導出一個自動運行的結果,你可以下載.trx(試運行執行)從附件部分文件,並使用XSLXSLT創建敬請分享,如果你有任何想法 非常感謝如何從MTM中提取測試日誌?

回答

0

來自它的html報告(您也可以使用命令行工具tcm.exe run /export來獲取.trx文件)。

但是,如果您通過手動執行創建了測試運行,這將不可能。獲得「結果文件」的唯一方法是使用TFS API解析測試運行的結果(在C#或Powershell中,通過TfsTeamProjectCollectionMicrosoft.TeamFoundation.TestManagement.Client並將其存儲在一個文件中)

或者您可以使用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 

(更換喜歡<XXX>與價值觀你的)