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