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