Получение идентификатора тестового прогона после запуска теста через tcm
У меня есть сценарий PowerShell для запуска автоматического теста с использованием интерфейса командной строки (tcm.exe) для Microsoft Test Manager.
Затем у меня также есть сценарий очистки Powershell, связанный с прогоном теста (в файле.testsettings), который экспортирует результат теста (tcm.exe run /export), но моя проблема заключается в том, что мне нужен идентификатор тестового прогона. Он выводится из команды 'tcm.exe run /create', но он бесполезен, потому что, во-первых, он выводится как "Выполнить с ID: 501", а во-вторых, потому что команда / create запускается из отдельный скрипт PowerShell.
Я могу использовать tcm.exe run /list для получения списка ВСЕХ идентификаторов теста, но это бесполезно, так как мне нужен только один последний тестовый запуск.
Любые идеи, кто-нибудь?
1 ответ
"Microsoft Test Manager : Start automated sanity test"
$testRunID = & "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TCM.exe" run /create /title:"Automated UI Tests" /planid:27 /suiteid:721 /configid:10 /settingsname:"UI Test Settings" /testenvironment:"MyTestEnvironment" /collection:"http://MyCollection" /teamproject:Main /builddir:"C:\MyBuildDir" /include
"Get test run ID from TCM output"
$testRunID = $testRunID.substring(21)
$testRunID = $testRunID.TrimEnd(".")
"Store test run ID in user environment variable"
[Environment]::SetEnvironmentVariable("CodedUITestRunID", "$testRunID", "User")
Это моё решение. Я сохраняю выходные данные из tcm.exe run /create в $testRunID, затем удаляю начало строки "Запуск создан с идентификатором: ", затем удаляю точку остановки в конце строки, и это оставляет меня только с идентификатором теста, который я установил как переменную среды, используя код.NET (см. здесь).
Позже у меня есть запланированное задание, которое предполагает, что тестовый запуск завершен, и запускает скрипт, который содержит (среди прочего) следующее:
"Test Run ID"
$testRunID = [Environment]::GetEnvironmentVariable("CodedUITestRunID", "User")
"Microsoft Test Manager: Export test results"
& "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\TCM.exe" run /export /id:"$testRunID" /resultsfile:"C:\ResultsPath\MyResultsfile.trx" /collection:"http://MyCollection" /teamproject:"Main"
Он просто извлекает идентификатор тестового прогона из переменной среды, которую я установил ранее, а затем запускает команду /export утилиты командной строки Microsoft Test Manager (tcm.exe), вводя идентификатор тестового прогона.