Entity framework EF Code first SetInitializer不';t在NUnit TextFixture设置中重新创建数据库

Entity framework EF Code first SetInitializer不';t在NUnit TextFixture设置中重新创建数据库,entity-framework,nunit,code-first,Entity Framework,Nunit,Code First,我在NUnit文本装置的开头为我的EF代码第一个模型调用以下代码 [TestFixtureSetUp] public void Init() { DbDatabase.SetInitializer( new MyDbInitialiser()); ... } MyDbInitialiser继承自DropCreateDatabaseAlways 为什么NUnit测试装置只运行初始化器一次,即使我重新运行了整个

我在NUnit文本装置的开头为我的EF代码第一个模型调用以下代码

    [TestFixtureSetUp]
    public void Init()
    {
       DbDatabase.SetInitializer(
                    new MyDbInitialiser());
...

    }
MyDbInitialiser
继承自
DropCreateDatabaseAlways

为什么NUnit测试装置只运行初始化器一次,即使我重新运行了整个测试装置


如果关闭NUnit runner并重新运行测试,则数据库确实会删除并重新创建。

请尝试改用
[Setup]
属性。在每次
[Test]
之前,将调用标记有此属性的任何方法


我不熟悉EF,但有没有一种方法可以在运行测试后调用TestFixtureTearDown进行清理?这可能会保证,当您第二次运行测试时,它将再次运行所有设置(而不是将某些内容保留在缓存中)

类数据库具有诸如Delete、Create、Initialize之类的方法。我想你可以自己给他们打电话来实现你的目标

嗨,不,我希望它在每次重新运行所有测试之后重新创建数据库,而不是在每次单独测试之后。