アーカイブ

Archive for 2017年11月

ReSharperのテストランナーを使うとファイルを見失う、、、

Visual Studioのテストランナーだとうまくいくのに、ReSharperのテストランナーを使うとうまくいかないケースが有った。

デバックでおっていってみると、相対パスにあるユニットテスト用の外部ツールを起動している部分で、ファイルを見失っている感じこんなコードがあるところで、

Process.Start(Path.Combine(Assembly.GetExecutingAssembly().Location, @”..\..\..\..\Hoge.exe”))

Visual StudioのテストランナーだとAssembly.GetExecutingAssembly().Locationには実行しているアセンブリのパスが入るんだけれど、ReSharperのテストランナーから実行するとこんなパスが入ってくる。「%LOCALAPPDATA%\Temp\0ywyjnls.q4g\dbsqoo3y.wab\HogeHoge.Test\assembly\dl3\8aa495c4\efd6deeb_4459d301\」

これは、ReShaperのテストランナーがユニットテスト前にDLLをシャドーコピーしてからテストを実施するためなので、Visual StudioのReSharperメニュー > Options > Tools > UnitTesting > Unit Test Runnerの Shadow-copy assemblies begin tested のチェックを外してあげれば Visual Studioのテストランナーと同じ挙動になる。
Reshaper-Shadow-Copy

広告
カテゴリー:Visual Studio