一个fixture中可以有多个[setuptest]?
我正在使用selenium和nunit,希望能够指定用户要测试的浏览器。
我有一个简单的用户gui来选择要运行的测试,但是,我知道在将来我们希望将此连接到cruise control来自动运行测试。理想情况下,我希望测试可以在我们的gui和nunitgui上运行。

最佳答案

一个fixture中可以有多个[setuptest]?不。
可以在基类中定义所有测试,让多个fixture继承测试,然后在运行时选择依赖于环境的fixture类型。
这是我为[testfixturesetup]准备的股票例子。相同的原则适用于所有设置属性。注意,我只把[testfixture]放在子类上。因为基本“testClass”没有完整的安装代码,所以您不想直接运行测试。

public class TestClass
{
    public virtual void TestFixtureSetUp()
    {
        // environment independent code...
    }

    [Test]
    public void Test1() { Console.WriteLine("Test1 pass.");  }

    // More Environment independent tests...
}

[TestFixture]
public class BrowserFixture : TestClass
{
    [TestFixtureSetUp]
    public override void TestFixtureSetUp()
    {
        base.TestFixtureSetUp();
        // environment dependent code...
    }
}

[TestFixture]
public class GUIFixture : TestClass
{
    [TestFixtureSetUp]
    public override void TestFixtureSetUp()
    {
        base.TestFixtureSetUp();
        // environment dependent code...
    }
}

09-25 20:58