7

Visual Studio からこの異常な動作に直面しています。突然、テスト バイナリ (mytestsolution.dll) と参照に追加された依存関係バイナリが、Bin フォルダーから TestResults\\Out フォルダーにコピーされ、から実行が開始されます。そこの?

GetExecutionAssembly() が依存バイナリの一部が存在する Bin フォルダーではなく Out フォルダーのパスを指定しているため、これによりテストが失敗しますか?

これを止める方法を教えてください。

4

5 に答える 5

4

Visual Studio 2010 はフォルダーTestResultsを作成し、次のスキーマを持つサブディレクトリにすべての関連ファイルを展開します: username_computername date time

これは、ソリューションの .testsettings ファイルがない場合の通常の動作です。.testsettings ファイルはSolution Itemsフォルダにあります。

.testsettings ファイルがある場合は、[展開] セクションの [展開を有効にする] の設定によって異なります。[展開を有効にする] がオンになっている場合、TestResults フォルダーが作成されて入力されます。

ここに画像の説明を入力

場合によっては、[配置を有効にする] が無効になっているにもかかわらず、TestResults フォルダーが作成される可能性があります。ただし、この場合、フォルダーは一部の一時ファイルにのみ使用され、テストの実行ファイルには使用されません。

詳細については、次を参照してください。

MSDN - テスト展開の概要

于 2014-09-05T12:26:53.657 に答える
1

これは、MSTest の既定の動作です。ソリューションがコンパイルされた後、テストランナーは直接参照を TestResults\_TestRun_\Out フォルダーにコピーします。コンパイル設定 (CopyLocal) を変更しても、テストの実行には影響しません。

必要であるが TestRun 出力フォルダーにない依存関係がある場合は、いくつかのオプションがあります。

  1. これらのアセンブリへの参照をテスト アセンブリに追加します。テスト ランナーはリフレクションを使用して依存関係を判断するため、そのアセンブリ内のクラスを参照する必要があります。

  2. 現在のテスト設定を変更し、依存関係を展開アイテムとして含めます。

于 2013-02-13T00:09:50.900 に答える
0

Copy Localプロパティを次のように変更しますFalse

  1. 右クリックしmytestsolution.dllてからクリックProperties
  2. そこCopy Localからfalseに変更
  3. ソリューションをビルドして今すぐ確認します。
于 2013-02-11T13:42:51.950 に答える
0

テスト実行構成で展開を無効にすることで、この動作を修正できます。たとえば、VS 2008 の場合: [テスト] > [テスト実行構成の編集] > [ローカル テスト実行] > [展開] > [展開を有効にする] = オフ。

詳細については、テスト展開の概要を参照してください。

于 2014-02-28T18:16:05.113 に答える