Running NUnit through Resharper 8 tests fail when crossing between projects due to AppDomain

I recently updated to Resharper 8, and when I tried to run a suite of projects. These tests contain two suites of integration tests that both use IISExpress to run a website, make web requests and check the responses.

Running them in isolation is successful, and running all the tests would previously succeed. However, after the upate the second set of tests to run would fail.

Investigation has revealed the AppDomain.CurrentDomain.BaseDirectory is staying as the first test to run instead of changing. Since the integration tests are composed of two projects, this is causing the second project to fail since it cannot find any of the configuration files needed.

I cannot find any option to disable this different behaviour in Resharper 8, which appears to be the behaviour of the /domain:Single nunit flag. Short of downgrading to Resharper 7, does anybody know a solution to this? And is it an intended behaviour of Resharper 8 or a bug?


Solution 1:

The Workaround:

Have you tried in Visual Studio going to ReSharper -> Options -> Tools -> Unit Testing

Change the setting "Run up to 1 assemblies in parallel" to a higher number. I tried one for each test project. Max is number of cores, I think.

Counterintuitive I know, but it worked for me and I am using AppDomain.CurrentDomain.BaseDirectory in the failing tests

The Cause A caching optimization bug in ReSharper 8. Working Directory is not set properly. Perhaps running in parallel creates a separate process for each test, so they don't trip over each other's settings.

The Fix JetBrains claim that this will be fixed in version 8.0.1

Update: There is a new unit testing option added in Resharper 8.1 to accomodate this scenario. Find it at ReSharper -> Options -> Tools -> Unit Testing -> "Use Separate AppDomain for each assembly with tests.

Solution 2:

We see the same issue. I think it's a bug. See: http://youtrack.jetbrains.com/issue/RSRP-380761