I've about driven myself nuts with this problem, issue was I have so much faith in NCrunch, I looked everywhere else first :) I've been using NCrunch for integration Test with EF, with some success, on occasion I'd get a failed test, and just hit the (Reset) button and all was golden.
Then I started a new project that was slightly more complex and has a few more operations hitting the Db. I use MsTest and an [AssemblyInitialize] attribute, and in that initializer I make a call to EF's code first initializer DropCreateDatabaseAlways. Hence in the first thing that runs when the test assembly loads, I'm loading my Db with a fresh set of data.
This is where the weirdness starts. NCrunch for the first two or classes or so didn't give me much problem but when I added a third test class, I started getting the following error. Cannot drop database "FatigueDb" because it is currently in use. All my test start failing, and it appears that each class is somehow calling into the assembly initializer, as each class has the same error in the test runner window... At first I thought I had a problem with my EF DbInitializer.
This is my third day on the problem, and I finally came round to the conclusion that its an NCrunch issue. I did some experimenting, turned off NCrunch engine and ran test using the built-in VS MsTest runner. All tests pass, I run again, they pass, I turn on NCrunch engine, all test in NCrunch fail, and MsTest runner test fail, I turn off NCrunch and MsTest runner makes them pass.
I end up on this form, I learn about [ExclusivelyUses("Database")] attribute, and I try that, I try the serialize attribute, I get lots smarter about NCrunch settings, I turn off parallel test execution. Finally I read a post on here about a guy that has a similar issue, he says ignore all test then un-ignore and they'll pass. I do that, and they do pass, until I add another test or make a change, then it's back to the same error.
So, not sure what to make of this issue, the attributes and settings don't seem to be showing me much love. For now I'm going to move my integration test strictly over to MsTests, any hints would be nice? I'm simply using EF, EF DbInitializer, with LocalDb stored in my User\ folder. Pretty slick setup for integration tests, runs quick except for the described problem when using NCrunch.