最近、Resharper 8に更新し、一連のプロジェクトを実行しようとしました。これらのテストには、IISExpressを使用してWebサイトを実行し、Webリクエストを作成し、応答をチェックする2つの統合テストスイートが含まれています。
それらを分離して実行することは成功し、すべてのテストの実行は以前は成功していました。ただし、更新後、実行する2番目のテストセットは失敗します。
調査の結果、AppDomain.CurrentDomain.BaseDirectory
は変更せずに実行する最初のテストとして残っています。統合テストは2つのプロジェクトで構成されているため、必要な構成ファイルが見つからないため、2番目のプロジェクトが失敗します。
Resharper 8でこの異なる動作を無効にするオプションが見つかりません。これは、/domain:Single
nunitフラグの動作のようです。 Resharper 7にダウングレードする前に、これに対する解決策を知っている人はいますか?そしてそれはResharper 8の意図された動作ですかバグですか?
回避策:
Visual StudioでReSharper-> Options-> Tools-> Unit Testingを試してみましたか?
「最大1つのアセンブリを並行して実行する」設定をより大きな数に変更します。テストプロジェクトごとに1つずつ試しました。マックスはコアの数だと思います。
直観に反することは知っていますが、それは私のために機能し、失敗したテストでAppDomain.CurrentDomain.BaseDirectoryを使用しています
原因 ReSharper 8のキャッシュ最適化バグ。作業ディレクトリが正しく設定されていません。おそらく、並行して実行すると、テストごとに個別のプロセスが作成されるため、お互いの設定をつまずくことはありません。
修正 JetBrainsはこれがバージョン8.0.1で修正されると主張しています
更新:新しい単体テストオプションResharper 8.1に追加され、このシナリオに対応しています。 ReSharper->オプション->ツール->ユニットテスト-> "テストごとに個別のAppDomainを使用してテストしてください。
同じ問題が発生します。バグだと思います。参照: http://youtrack.jetbrains.com/issue/RSRP-380761
これはResharper 8.0.2で修正されました: http://youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929
新しいオプションReSharperをチェックすることを忘れないでください。オプション|ツール|ユニットテスト| 「アセンブリをテストするごとに個別のAppDomainを使用して」機能するようにします。
つまり単体テスト設定に新しいオプションが追加されました。