【问题标题】:Getting the test run ID after launching a test via tcm通过 tcm 启动测试后获取测试运行 ID
【发布时间】:2013-04-20 18:35:02
【问题描述】:

我有一个 PowerShell 脚本,用于使用 Microsoft 测试管理器的命令行界面 (tcm.exe) 启动自动测试运行。

然后我还有一个与测试运行关联的清理 Powershell 脚本(在 .testsettings 文件中),它导出测试结果(tcm.exe run /export),但我的问题是我需要测试运行 ID。它是 'tcm.exe run /create' 命令的输出,但它没有用,因为首先它输出为“Run created with ID: 501”,其次是因为 /create 命令是从单独的 PowerShell 脚本。

我可以使用 tcm.exe run /list 来获取所有测试 ID 的列表,但这没用,因为我只需要最近一次的测试运行。

任何想法,任何人?

【问题讨论】:

  • 它的输出方式有什么问题?您可以使用正则表达式“.+(\d*)”提取 ID。 “单独的 PowerShell 脚本”是什么意思?是否所有功能都在一个会话中运行?如,打开 PShell,调用脚本 1,然后 2,然后 3...还是打开 PShell,调用脚本 1,关闭 PShell,打开新 PShell,调用脚本 2...?
  • PowerShell 脚本启动测试运行,然后关闭。同时,测试运行在远程环境中启动。在测试运行结束时,它会启动一个脚本来导出测试结果,然后读取结果文件并发送一封电子邮件以报告结果。
  • 既然你说在运行结束时它会启动一个脚本,我假设测试运行被包装在一个脚本中,所以你应该能够捕获输出并从中获取 ID运行测试的内容,并将其作为参数传递给下一个脚本。
  • 看看这就是问题所在。 Microsoft 测试管理器不允许将参数传递到脚本中,即使它们这样做了,它仍然无法工作,因为设置/清理脚本是从 .testsettings 文件配置的,因此我们将无法访问 ID 变量.
  • 那很好。你应该写下你的解决方案作为这个问题的答案并接受它。请注意,在 PowerShell 中,环境变量 ($env:name) 仅存在于当前会话中,因此除非您将其保存在其他位置,否则该变量将在会话结束/关闭 PowerShell 时消失。

标签: visual-studio-2010 automated-tests microsoft-test-manager tcm


【解决方案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 中,然后删除字符串的开头“使用 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 测试管理器命令行实用程序 (tcm.exe) 的 /export 命令,输入测试运行 ID。

【讨论】:

    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2015-12-19
    • 2013-08-29
    • 2016-09-19
    • 2018-05-14
    • 2014-04-28
    相关资源
    最近更新 更多