NUnit -在SetUpFixture上不允许使用TestFixtureSetUp方法而失败
本文关键字:TestFixtureSetUp 方法 失败 不允许 SetUpFixture NUnit | 更新日期: 2023-09-27 18:18:44
我正试图重新组织一些集成测试,我们有,使他们使用一个公共类创建数据库和数据库中所需的数据,以测试在同一程序集中使用[SetUpFixture] NUnit属性的其他类。
我有:
namespace Tests;
public class TestBaseClass : SolutionBaseClass
{
public void Setup()
{
base.CreateDatabase();
base.CreateData();
}
public void Teardown()
{
base.DestroyDatabase();
}
}
[SetUpFixture]
public class Setup : TestBaseClass
{
[SetUp]
public void Setup()
{
base.Setup();
}
[TearDown]
public void Teardown()
{
base.Teardown();
}
}
然后是单独的测试夹具类:
namespace Tests.Services;
[TestFixture]
public class LibraryTest : TestBaseClass
{
[TestFixtureSetUp]
public void SetupTests()
{
// I know am calling the same Setup twice once from SetUpFixture and TestFixture,
// I have handled it so that only one Database/Data gets set up once (for safety mostly!)
base.SetUp();
// Other class initialisations.
}
}
任何想法我做错了,我认为这是一个问题与使用的继承模型,因为你可以告诉我继承这个从别人!!
谢谢。
在NUnit 3中,应该在[SetUpFixture]类的静态方法上使用onetimesetupatattribute和OneTimeTearDownAttribute。来源:http://bartwullems.blogspot.nl/2015/12/upgrading-to-nunit-30-onetimesetup.html
In NUnit 2.0
[SetUpFixture]
class TestHost
{
[SetUp]
public static void AssemblyInitalize()
{
//Global initialization logic here
}
}
[SetUpFixture]
class TestHost
{
[OneTimeSetUp]
public static void AssemblyInitalize()
{
//Global initialization logic here
}
}
在NUnit 3.0
中,TestFixtureSetUp
和TestFixtureTearDown
已被重命名为OneTimeSetUp
和OneTimeTearDown
。
以下是上述更改的文档链接:
- SetUp and TearDown Changes