環境
私は C# および C++/CLI dll を使用するアプリケーションです。C++/CLI dll は、ブースト ライブラリなどの純粋な C++ .dll を参照します。
テストは Tests.dll にコンパイルされ、他のすべてのバイナリと共に $(SolutionDir)\bin\Debug に配置されます。
問題
Visual Studio 2012 を使用して xunit テストを実行しようとすると、次のエラーで失敗します。
xUnit.net: Exception discovering tests from C:\Dev\xu-tests\bin\Debug\Tests.dll:
> System.IO.FileNotFoundException: Could not load file or assembly 'ManagedCpp.DLL'
> or one of its dependencies. The specified module could not be found.
> File name: 'ManagedCpp.DLL'
Visual Studio 以外の 2 つの方法で問題を再現できます。
このディレクトリの外からコンソールランナーを実行しようとすると
..(ロングパス)..\xunit.console.clr4.exe Debug\Tests.dll
インストールされたディレクトリから GUI ランナーを実行しようとしたとき。
ただし、コンソールを使用して bin\Debug ディレクトリに移動し、そこからコンソールまたは GUI ランナーを起動すると、動作させることができます。
これは、VS2012 が bin\Debug ディレクトリを作業ディレクトリとして使用せずに単体テストを実行しようとすることが問題であると私に思わせます。
質問
xunit が実行される作業ディレクトリを $(OutDir) (または特定のディレクトリ) に設定するにはどうすればよいですか?