我正在使用nunit为某些类做一些测试。
所有测试类都有一些常见的操作,但需要使用不同的参数。
所以我在基类中添加了测试,在基类中添加了虚拟方法来提供参数。
在派生测试类中,我重写虚方法,为基类中的测试提供特定参数。
现在我的问题是我希望基类中的测试只能从派生类中执行。我目前正在使用基类上的ignore属性来忽略测试但是这会在运行测试时导致一些警告,并且如果存在许多被忽略的测试,则存在不允许我将更改提交到svn的策略。
那么如何在不使用基类的ignore属性的情况下从派生类中的基类运行测试。
答案 0 :(得分:19)
您应该能够将基类标记为抽象,这将阻止nunit在该类中运行测试 - 这意味着您不再需要ignore属性。
namespace MyTests
{
[TestFixture]
public abstract class BaseTestClass
{
[Test]
public void CommonTest()
{
}
}
[TestFixture]
public class TestClass1 : BaseTestClass
{
[Test]
public void OtherTest1()
{
}
}
[TestFixture]
public class TestClass2 : BaseTestClass
{
[Test]
public void OtherTest2()
{
}
}
}