【问题标题】:NUnit - Fails with TestFixtureSetUp method not allowed on a SetUpFixtureNUnit - SetUpFixture 上不允许使用 TestFixtureSetUp 方法失败
【发布时间】:2021-12-04 00:27:50
【问题描述】:

我正在尝试重新组织我们拥有的一些集成测试,以便它们使用一个公共类来创建数据库和数据库中所需的数据,以便使用 [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?
  • 我使用的是 2.6.2 版本,文本是“SetUpFixture 上不允许使用 TestFixtureSetUp 方法”。但是,我已经通过删除 [SetUp] 和 [TearDown] 方法中对 base.Setup() 和 base.Teardown() 的调用来回答我自己的问题。我正在通过普通方法实例化基类。

标签: c# nunit


【解决方案1】:

在 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
    }
}

【讨论】:

  • 请提供代码示例,因为此链接将来可能无法使用。
【解决方案2】:

NUnit 3.0TestFixtureSetUpTestFixtureTearDown 中已重命名为OneTimeSetUpOneTimeTearDown

这是上述更改的文档链接:

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    相关资源
    最近更新 更多