webdevqa.jp.net

Visual Studio 2013 Update 4後にMS Fakesユニットテストが失敗する

最近、Microsoft Visual Studio 2013 Update 3(Premiumエディション)からMicrosoft Visual Studio 2013 Update 4(Premiumエディション)にアップグレードしたところ、既存の単体テストプロジェクトのコンパイルが停止しました。それはエラーで失敗します:

タイプ 'Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1'は、参照されていないアセンブリで定義されています。アセンブリ 'Microsoft.QualityTools.Testing.Fakes、Version = 12.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a'への参照を追加する必要があります

他の多くの人々と同様に、VS2013でバグが導入された同様の問題がありました。この問題は、(ファイルエクスプローラーまたはすべてのファイルの表示を有効にしたソリューションエクスプローラーを介して).messagesファイルを手動で削除することで解決できます。プロジェクトフォルダ。ただし、FakesAssembliesフォルダー全体を削除しても問題は解決しません。

プロジェクトへの参照(正しいバージョンを含む)はプロジェクト内のものです。参照を削除して再追加しましたが、効果がなく、コンパイルに失敗します。

単体テストプロジェクトは、Visual Studio 2013 Update 3を使用してコンパイルし、他の同僚のマシンに渡します。

MSの偽物を使用した新しいプロジェクトの単体テストプロジェクトもビルドに失敗します。

それでは、Update 4をアンインストールすると、他に何か試すことができますか?

そうでない場合は、Microsoft Connectのバグを記録します。

18
Kyle
  1. 修正は、.FAKESで終わるすべての参照(Microsoft.QualityTools.Testing.Fakes.dll参照を含む)を削除することでした。
  2. FAKESフォルダも削除しました
  3. 洗浄液
  4. 次に、すべての参照を再度読み込みました。

Shimsに関連するいくつかのエラーがありましたが、これらをスタブに変換しました。

すべてのプロジェクトをこの方法で手動でアップグレードする必要があり、ビルドサーバーを含むすべてのVSインスタンスをアップグレードしました。

5
Kyle

Microsoft.QualityTools.Testing.Fakesの参照プロパティで、"Specific Version"プロパティをFALSEに変更します。そうすることで、マシンにインストールされているMicrosoft.QualityTools.Testing.FakesのどのバージョンでもVisual Studio 2013で使用できるようになります。

Visual Studio 2013 Update 4では、Microsoft.QualityTools.Testing.Fakes.dllのバージョン番号が11.0から12.0に増えました。これが物事を壊した原因です。

53
The Chiller

以下のアセンブリを追加して、ソリューションを再構築しました。それは私のために働き始めました。 A:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.QualityTools.Testing.Fakes.dll

B. C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

0
RotatingWheel

プロジェクト全体をクリーンアップして、もう一度コンパイルしてみてください。これでうまくいきました。

0
Ethnor

ここですべての答えを試した後、それは最終的に私のために働きました。コード:

using (ShimsContext.Create())

(慣れている)投げる:

ライブラリ 'C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Team Tools\Performance Tools\vsperfcorprof.dll'から関数SetDetourProviderのアドレスを取得できませんでした。

私のテストプロジェクトは2012年に実行されています。次のDLLをこれらに置き換えました。

  • Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll(バージョン:10.1.0.00、ファイルバージョン:11.0.60610.1)
  • Microsoft.QualityTools.Testing.Fakes.dll(バージョン:11.0.0.0、ファイルバージョン:11.0.60315.1)

それらは次の場所にあります:

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies \

それが役に立てば幸い。

0
DanielV