如何使用两种不同的设置运行一组nUnit测试?

Ian*_*ose 4 nunit unit-testing

(抱歉标题不清楚,如果能想出更好的标题,请编辑它)

我希望在两个不同的数据存储上运行相同的测试,我可以在Setup()方法中创建数据存储.

那么我应该有一个包含所有测试和抽象SetUp()方法的超类,那么每个数据存储都有一个子类?

或者,还有更好的方法?

对于我正在测试的内容,请参阅" 不区分大小写的字符串与linq-to-sql和linq-to-objects进行比较 ".

Gam*_*lor 13

这是一个简单的解决方案.

所有测试用例都在一个抽象类中,例如在TestBase类中.例如:

public abstract class TestBase
{
    protected string SetupMethodWas = "";

    [Test]
    public void ExampleTest()
    {
        Console.Out.WriteLine(SetupMethodWas);    
    }

    // other test-cases
}
Run Code Online (Sandbox Code Playgroud)

然后为每个设置创建两个子类.因此,每个子类都将使用it-setup方法和所有继承的测试方法运行.

[TestFixture]
class TestA : TestBase
{
    [SetUp]
    public void Setup()
    {
        SetupMethodWas = "SetupOf-A";    
    }
}
[TestFixture]
class TestB : TestBase
{
    [SetUp]
    public void Setup()
    {
        SetupMethodWas = "TestB";
    }
}
Run Code Online (Sandbox Code Playgroud)

这很棒.但是,对于更简单的测试,参数化测试是更好的解决方案