Moles と MsTest を使用しているときに、説明可能な (しかし苛立たしい) 動作を見つけました。
次のケースを想像してみてください。
- "Test DLL A" は mscorlib で Moles を使用しています
- "Test DLL B" は mscorlib で Moles を使用しています
コンパイル時間を改善するために、どちらの場合も .moles ファイルを編集して、単一のクラスのモルの生成を要求しています。
これを行うと、プロジェクトは完全に正常にコンパイルされます。
しかし、ソリューションのテストを実行すると、MsTest プロセスは次のようになります。
- 「Out」フォルダー内のすべての DLL をコピーします。
- 「Out」フォルダーでテストを実行します
結果として、"Out" フォルダへのコピーは、mscorlib.Moles.dll の 2 つのバージョン (タイプ 1 とタイプ 2) をコピーしようとし、もちろん、2 つ目は最初のものを上書きします。
そのため、モール アセンブリが正しくないため、"Test DLL A" のテストは失敗します。
もちろん、2 つの簡単な回避策があります。
- すべての .moles ファイルに (すべてのプロジェクトで) 必要なすべての型を含める
- タイプフィルタリングを使用しない
あなたもこの「問題」に直面したことがありますか?他の解決策はありますか?
どうもありがとう !
Pierre-Emmanuel DotNetHub ユーザー グループ リーダー