2012-01-10 13 views
3

私は、コマンドラインから我々のテストアセンブリに対してMSTestをを実行しています:テストの実行後にすべてのテスト成果物を削除するようMSTestに指示するにはどうすればよいですか?

mstest /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll

これは私がこの実験からのアーティファクトがままにしたくないを除いて、正常に動作します。 MSTestがコピーを残しているようだ。私の場合、彼らはC:\dev\TestResults\ディレクトリにいます。 .testsettingsファイル内

  • 構成:

    私はいくつかのことを研究してきました。そこに何も見つかりませんでした。

  • .testsettingsファイルで指定されたクリーンアップスクリプトを実行しています。これは機能しますが、MSTestが成果物に使用する出力場所を確認するにはどうすればよいですか?
  • Visual Studioを使用して、ツール>オプション>テストツール>テストの実行で古いテスト結果の数を制限します。これは、mstest.exeを使用しているときは機能しません。私はチームの他の開発者にこれをスクリプトしたいので、とにかく動作しません。

実行が完了したら、テストランアーティファクトを削除するにはどうすればよいですか?

編集:オープンソースのテスト実行ツールを使用してMSTestテストを実行する回答も受け入れます。私はちょうどこれをスクリプト化したい。

答えて

1

MSTestは、$ pwdにTestResultsディレクトリを作成します。

function global:runtests() 
{ 
    $mstest = Join-Path $env:VS100COMNTOOLS "..\IDE\mstest.exe" -Resolve 

    $resultsDir = Join-Path $pwd "TestResults" 

    $testDll = Join-Path $solutionScriptsContainer "..\UnitTests\bin\Debug\UnitTests.dll" -Resolve   
    $output = & $mstest /testcontainer:$testDll 
    $o = [regex]::match($output, "^.*(Summary.*)Results file.*$") 
    $mstflag = "MSTest:" 
    $op = $mstflag += $o.groups[1].value 

    Write-Host $op 
    Write-Host "Deleting $resultsDir" 

    remove-item $resultsDir -force -recurse 
} 
+1

また、簡単な目のバッチコマンドを追加することができます: 'MSTEST /testcontainer:C:\dev\UnitTests\bin\Debug\UnitTests.dll&&rd/S/Q "C:\ DEV \ TestResults"' – KMoraz

関連する問題