6

TFS 2012 (Update 3) と VS 2013 RC を使用しています。メイン プロジェクト/アセンブリと UnitTest プロジェクトの 2 つのプロジェクトを含む .sln ファイルがあります。単体テスト プロジェクトでは、Microsoft Fakes を利用しています。Visual Studio (私たちは Premium を使用しています) 内で、.sln をコンパイルしてテストを実行できます。ビルド エージェントでは、Visual Studio を使用して .sln をコンパイルおよびビルドし、テストを実行できます。しかし、ビルドをキューに入れると、Fakes アセンブリが見つからないため、UnitTest プロジェクトのビルドに失敗します。Visual Studio でビルドするときのように、動的に作成しているようには見えません。通常、VS では偽の dll が作成され、それが FakeAssemblies フォルダーに配置されます。ビルドが失敗した後、ログインして、FakeAssemblies ディレクトリがまったく作成されていないことを確認できます。

エラーは... C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605): この参照を解決できませんでした。アセンブリ "System.Web.Http.5.0.0.0.Fakes" が見つかりませんでした。アセンブリがディスク上に存在することを確認してください。コードでこの参照が必要な場合、コンパイル エラーが発生する可能性があります。

ビルドはデフォルトのテンプレートを使用しており、.sln (メイン アセンブリと単体テスト プロジェクトを含む) をビルドすることを選択しました。その .sln に UnitTest を含めるべきではありませんか? ビルド中に UnitTest をコンパイルする他の方法はありますか?

Visual Studio のように Fake アセンブリを動的に作成してビルドしない理由を知っている人はいますか?

ありがとう!!!

4

1 に答える 1

2

私は同じ問題を抱えていましたが、TFS 2012 と VS 2012 で、Visual Studio を TFS サーバーにインストールすることで解決しました。したがって、既に VS をそこにインストールしている場合、このアドバイスは役に立ちません。

まず、そのアセンブリをローカル マシンのフォルダーから TFS サーバーの同じフォルダーにコピーしようとしました。にありc:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.QualityTools.Testing.Fakes.dllます。

問題は解決し、テスト プロジェクトは正常にビルドされましたが、Fakes を使用していた各テストはパスしませんでした。例外がありました:

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException: UnitTestIsolation インストルメンテーションを初期化できませんでした。Visual Studio を再起動して、このテストを再実行してください。

時間がなかったので、2 番目のステップを実行することにし、Visual Studio を TFS マシンにインストールしたところ、すべての問題が解消されました。

于 2014-02-04T06:39:51.137 に答える