22

プロジェクトでは、Visual Studio 2012 と Team Foundation Server 2010 を使用しています。Microsoft Fakes を使用しているため、Team Build 2010 の開始されたテスト機能を使用できなかったので、テスト アセンブリを渡す VSTest.Console.exe を呼び出すビルド アクティビティを作成しました。このアプローチは、私たちにとってうまく機能しています。ただし、最近のチェックイン後、Vstest.console.exe を実行すると次のエラーが発生します。

エラー: エグゼキューター 'executor://mstestadapter/v1' の呼び出し中に例外が発生しました: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

バイナリ ファイルをローカル マシンにコピーしたところ、再びエラーが発生しました。興味深いことに、チェックイン前に同じ vstest.console.exe を同じパラメーターで実行し、正しく動作する開発ビルドを実行します。私のマシンには 2 つのフォルダーがあります。1 つは通話が正常に機能し、もう 1 つは正常に機能しません。コンパイルされたアセンブリは同じサイズに見え、示唆するほどの違いはありません。

Process Monitor を使用してみましたが、プロセスが終了コード 1 で戻ること以外に明らかなことは見つかりませんでした。このエラーについてよく知っている人はいますか? テスト実行から詳細情報を見つける方法はありますか?

よろしく、

ハミド

4

8 に答える 8

6

問題の根底にたどり着きました。Entity Framework 5.0 を使用しており、一部のテスト アセンブリが .Net 4.0 をターゲットにしており、一部が .Net 4.5 をターゲットにしている状況もあります。

異なるバージョンの .Net Framework を対象とし、Entity Framework 5.0 を使用するアセンブリが同じテスト (vstest.console.exe) プロセスで実行されるようなテストを実行しようとすると、このエラーが発生します。

これは、Entity Framework 5.0 が 2 つのバージョン (net40 と net45) で出荷される方法に関係していると思います。ライブラリの 1 つのバージョンがプロセスで読み込まれると、他のバージョンを読み込むことができず、これがエラーの原因でした。

于 2013-01-30T15:56:43.943 に答える
2

AssemblyInfoプロジェクトで指定されている場合、件名で同じエラーが指定されていますAssemblyAttribute

[assembly: AssemblyCulture("en")]

これattributeが存在する場合、単体テストの実行は失敗します。このコード行を削除するか、en言語を削除すると、単体テストの実行は成功します。

于 2013-04-18T08:24:36.193 に答える
0

app.config と packages.config が存在する場合は削除し、nuGet パッケージを介してエンティティ フレームワークを再インストールするとうまくいきます。

于 2015-03-29T05:31:59.550 に答える