gpt4 book ai didi

c# - NUnit - 失败,SetUpFixture 上不允许使用 TestFixtureSetUp 方法

转载 作者:太空狗 更新时间:2023-10-29 18:24:55 26 4
gpt4 key购买 nike

我正在尝试重新组织我们拥有的一些集成测试,以便它们使用一个公共(public)类来创建数据库和数据库中所需的数据,以使用 [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] 类的静态方法上使用 OneTimeSetUpAttribute 和 OneTimeTearDownAttribute。来源:http://bartwullems.blogspot.nl/2015/12/upgrading-to-nunit-30-onetimesetup.html

在 NUnit 2.0 中

[SetUpFixture]
class TestHost
{
[SetUp]
public static void AssemblyInitalize()
{
//Global initialization logic here
}
}

在 NUnit 3.0 中

[SetUpFixture]
class TestHost
{
[OneTimeSetUp]
public static void AssemblyInitalize()
{
//Global initialization logic here
}
}

关于c# - NUnit - 失败,SetUpFixture 上不允许使用 TestFixtureSetUp 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25401747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com