Я тестирую проект, и все мои тестовые примеры находятся в MTM, я ищу способ извлечь все результаты теста, которые у нас есть в MTM, в отдельный файл, есть ли способ сделать это? пожалуйста, поделитесь, если у вас есть какие-либо идеи, большое спасибо
как извлечь журнал испытаний из MTM?
Ответы (1)
Если вы хотите экспортировать результаты автоматического запуска, вы можете загрузить файл .trx
(выполнение тестового запуска) из раздела вложений и использовать XSL
и XSLT
для создания из него отчета в формате html (вы также можете использовать инструмент командной строки tcm.exe run /export
для получить файл .trx).
Но если вы создали тестовый прогон вручную, это будет невозможно. Единственный способ получить «результирующий файл» — проанализировать результат тестового прогона с помощью API TFS (в C# или Powershell через TfsTeamProjectCollection
из Microsoft.TeamFoundation.TestManagement.Client
и сохранить его в файле.
Или вы можете использовать Rest-API TFS с этим PowerShell-Script (сохранить как .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› своими)