Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不同配置的多个[SetupTest]_C#_Nunit - Fatal编程技术网

C# 不同配置的多个[SetupTest]

C# 不同配置的多个[SetupTest],c#,nunit,C#,Nunit,一个夹具中是否可能有多个[SetupTest] 我正在使用Selenium和nUnit,希望能够指定用户要测试的浏览器 我有一个简单的用户界面来选择要运行的测试,但我知道,在未来,我们希望将其连接到巡航控制来自动运行测试。理想情况下,我希望测试可以在我们的GUI和NUnit GUI上运行。我怀疑您可以使用NUnit 2.5中引入的参数化测试来做您想做的事情,但我不完全清楚您想在这里做什么。但是,您可以定义fixture并让它在其构造函数中接受一个浏览器变量,然后使用参数化的TestFixture

一个夹具中是否可能有多个[SetupTest]

我正在使用Selenium和nUnit,希望能够指定用户要测试的浏览器


我有一个简单的用户界面来选择要运行的测试,但我知道,在未来,我们希望将其连接到巡航控制来自动运行测试。理想情况下,我希望测试可以在我们的GUI和NUnit GUI上运行。

我怀疑您可以使用NUnit 2.5中引入的参数化测试来做您想做的事情,但我不完全清楚您想在这里做什么。但是,您可以定义fixture并让它在其构造函数中接受一个浏览器变量,然后使用参数化的TestFixture属性,如

TextFixture["Firefox"]
TestFixture["Chrome"]
public class ParameterizedTestFixture { 
  //Constructor
  public ParameterizedTestFixture( string Browser) {
  //set fixture variables relating to browser treatment
  }
  //rest of class
}
有关更多信息,请参阅


Setup属性标识在每次测试之前运行的方法。每个测试夹具只有一个设置是有意义的-在每个测试运行之前,将其视为“重置”或“准备”。

一个夹具中是否可能有多个[SetupTest]?没有

可以在基类中定义所有测试,让多个装置继承测试,然后在运行时选择依赖于环境的装置类型

下面是我为[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...
    }
}