I have a code that uses EF code first that I want to Unit tests in my unit test I want a real empty database in the start of the test so I did:
    [TestInitialize]
    public void Initialize()
    {
        Database.SetInitializer(new DropCreateDatabaseAlways<MyContext>());
    }
    [TestCleanup]
    public void CleanUp()
    {
        MyContext db = new MyContext();
        db.Database.Delete();
    }
but because the tests run in parallel this is not work so I did a order test with my tests and it also has issues because the database sometimes is not dropped because is in use... Someone have better strategy? I thought maybe each test will create its own database ? if it is good idea how can I achieve this?
 
     
     
    