48

最近、Resharper 8 に更新し、一連のプロジェクトを実行しようとしたとき。これらのテストには、IISExpress を使用して Web サイトを実行し、Web 要求を作成し、応答を確認する 2 つの統合テスト スイートが含まれています。

それらを単独で実行すると成功し、以前はすべてのテストを実行しても成功していました。ただし、更新後、実行する 2 番目のテスト セットは失敗します。

調査の結果、AppDomain.CurrentDomain.BaseDirectoryが変更されるのではなく、実行する最初のテストとして残っていることが明らかになりました。統合テストは 2 つのプロジェクトで構成されているため、必要な構成ファイルが見つからないため、2 番目のプロジェクトが失敗します。

/domain:Singlenunit フラグの動作のように見える Resharper 8 で、この異なる動作を無効にするオプションが見つかりません。Resharper 7 へのダウングレード以外に、これに対する解決策を知っている人はいますか? また、Resharper 8 の意図した動作ですか、それともバグですか?

4

3 に答える 3

55

回避策:

Visual Studio で ReSharper -> オプション -> ツール -> ユニット テストに移動してみましたか?

「最大 1 つのアセンブリを並行して実行する」設定をより大きな数に変更します。テストプロジェクトごとに1つずつ試しました。最大はコア数だと思います。

直感に反することは知っていますが、私にとってはうまくいき、失敗したテストで AppDomain.CurrentDomain.BaseDirectory を使用しています

原因 ReSharper 8 のキャッシュ最適化のバグです。作業ディレクトリが正しく設定されていません。おそらく、並行して実行すると、テストごとに個別のプロセスが作成されるため、互いの設定につまずくことはありません。

Fix JetBrains は、これがバージョン 8.0.1 で修正されると主張しています。

更新:このシナリオに対応するために、 Resharper 8.1に追加された新しい単体テスト オプションがあります。ReSharper -> オプション -> ツール -> ユニット テスト -> 「テストを含むアセンブリごとに個別の AppDomain を使用してください」で見つけてください。

于 2013-08-07T13:22:11.677 に答える
9

同じ問題が発生します。バグだと思います。参照: http://youtrack.jetbrains.com/issue/RSRP-380761

于 2013-07-26T17:48:48.383 に答える
6

これは Resharper 8.0.2 で修正されました: http://youtrack.jetbrains.com/issue/RSRP-374143#comment=27-572929

新しいオプションにチェックを入れることを忘れないでください ReSharper | オプション | ツール | 単体テスト | 「テスト付きのアセンブリごとに個別のAppDomainを使用してください」と機能させます。

つまり、ユニット テストの設定に新しいオプションが追加されました。

于 2013-11-29T01:39:04.993 に答える