When I run unit tests with Visual Studio it works fine, because it runs from project directory where all assemblies are. But when I run it with resharper it goes with error on

var services = Assembly.Load("SomeAssembly");

with error

Could not load file or assembly 'SomeAssembly' or one of its dependencies. The system cannot find the file specified..

So i've tried

var path = Assembly.GetExecutingAssembly().Location;

and it's not project one. It's

C:\Users\*UserName*\AppData\Local\Temp\TestResults\...\Out\

and there is no 'SomeAssembly'. How do I configure resharper correctly or collect all assemblies like Visual Studio does?

It happens with unit tests but not with NUnit, any ideas?


Resharper shadow copies assemblies for testing by default. If you turn off shadow-copy, it will run in the bin folder and the test should pass. Here are some instructions on turning it off.


In the documentation for NUnit's Gui Test Runner settings has the following note about Shadow Copy

Note: If you are tempted to disable shadow copy in order to access files in the same directory as your assembly, you should be aware that there are alternatives. Consider using the Assembly.Codebase property rather than Assembly.Location.

Here is an example of using the Assembly.Codebase property

    private string AssemblyLocation()
    {
        var assembly = Assembly.GetExecutingAssembly();
        var codebase = new Uri(assembly.CodeBase);
        var path = codebase.LocalPath;
        return path;
    }

I had the same problem, resharper test runner was in C:\ whereas the actual built dlls and solution were on another drive. The solution was to untick "Use Legacy Runner" in the MSTest settings page in resharper options.