0

Microsoft Test Manager のコマンド ライン インターフェイス (tcm.exe) を使用して、自動テストの実行を開始する PowerShell スクリプトがあります。

また、テスト実行に関連付けられたクリーンアップ Powershell スクリプト (.testsettings ファイル内) もあり、テスト結果 (tcm.exe run /export) をエクスポートしますが、問題は、テスト実行 ID が必要なことです。「tcm.exe run /create」コマンドからの出力ですが、まず「Run created with ID: 501」と出力され、次に /create コマンドが別の PowerShell スクリプト。

tcm.exe run /list を使用してすべてのテスト ID のリストを取得できますが、最新のテスト実行が 1 つしか必要ないため、これは役に立ちません。

アイデアはありますか?

4

1 に答える 1

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 created with ID: " を削除します。次に、文字列の末尾にあるピリオドを削除します。 .NET コードを使用して環境変数として設定したテスト ID 番号のみを使用します (こちらを参照)。

後で、テストの実行が終了したと仮定してスケジュールされたタスクを作成し、(特に) 次の内容を含むスクリプトを実行します。

"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 を入力するだけです。

于 2012-08-07T08:06:26.233 に答える