2016-04-08 29 views
0

VSTSビルド定義を作成したい場合は、テストという単語が含まれているdllでvstest.console.exeを実行するよう指定できます。この定義は次のようになります。これは私のリポジトリに対して次のようなコマンドを実行VSTest個々のdllを個別に実行する

**\*test*.dll;-:**\obj\** 

2016-04-08T20:38:41.4966824Z Executing C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe 
"E:\A\_work\33\s\A\UnitTests\bin\Release\A.UnitTests.dll" 
"E:\A\_work\33\s\A\bin\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" 
"E:\A\_work\33\s\B\UnitTests\bin\Release\B.UnitTests.dll" 
"E:\A\_work\33\s\B\UnitTests\bin\Release\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll" 
/logger:trx 

私がいる問題は、DLLが& Bだということです同じDLL名に依存していますこれはvstest.console.exeが同時にdllをロードできないことを意味し、2つのケースのうちの1つが失敗することになります。

vstest.console.exeをdllごとに強制的に読み込む方法はありますか?私は/ InInsolationを試しましたが、問題は解決しませんでした。

別のvstest.console.exeコマンドで各dllを別々に実行するとうまくいくことはわかりますが、VSTSで実現するのは面倒です。他のオプションはありますか?

答えて

1

"Run In Parallel"機能を試すことができます。 "Visual Studio Test"ステップの "Run In Parallel"オプションをチェックするか、テストセッティングファイルを使用して有効にします。

並列テスト実行

Visual Studioのテストプラットフォームは、テストケースの並列実行 をサポート導入します。

並列テスト実行は、マシン上で利用可能なコアを活用 と異なるプロセスとして各 利用可能なコアにテスト実行エンジンを起動し、それを容器 (アセンブリ、DLL、または関連するアーティファクトを含むを渡すことによって実現されます。実行するテスト)、 実行するテストの価値。スケジューリングの単位はテスト コンテナです。各コンテナ内では、テストフレームワークのセマンティクスとして ごとにテストが実行されます。そのような容器が多数ある場合は、 コンテナ内のテストの実行が終了すると、次に使用可能なコンテナが渡されます。

詳細はこのリンクを参照してください:Parallel Test Execution

しかし、私の心の中で、これを実行する最も簡単な方法は、あなたのビルド定義で追加の「Visual Studioのテスト」ステップを追加しています。次に、A.UnitTests.dllを実行する1つのVSTestタスクと、B.UnitTests.dllを実行する別のVSTestタスクを構成できます。

関連する問題