【发布时间】: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() 的调用来回答我自己的问题。我正在通过普通方法实例化基类。