我有一个PowerShell脚本,可以使用Microsoft Test Manager的命令行界面(tcm.exe)启动自动测试运行。
然后我还有一个与测试运行相关联的清理Powershell脚本(在.testsettings文件中),它导出测试结果(tcm.exe运行/导出),但我的问题是我需要测试运行ID。它是从'tcm.exe run / create'命令输出的,但没有用,因为首先,它输出为“使用ID:501创建的运行”,其次是因为/ create命令是从单独的PowerShell脚本。
我可以使用tcm.exe运行/列表来获取所有测试ID的列表,但这没用,因为我只需要最近一次测试运行。
任何想法,任何人?
答案 0 :(得分:0)
"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中,然后删除字符串的开头“Run with ID:”,然后我删除字符串末尾的句号,这就离开了我只使用测试ID号,我使用.NET代码将其设置为环境变量(参见here)。
稍后,我有一个计划任务,假定测试运行已经完成,并运行一个脚本,其中包含(除其他外)以下内容:
"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"
这只是从我之前设置的环境变量中检索测试运行ID,然后运行Microsoft Test Manager命令行实用程序(tcm.exe)的/ export命令,输入测试运行ID。