(C#NUnit 2.6.4)[设置]为每个测试用例运行
我的全局设置如下所示(C#NUnit 2.6.4)[设置]为每个测试用例运行,c#,web-services,nunit,C#,Web Services,Nunit,我的全局设置如下所示 public class GlobalSetup { [SetUp] public void setUp() { // Setup code } } 下面是我的测试用例 [TestFixture] public class Products : GlobalSetup { [Test, Description("Test description here")] public void GetProductsByP
public class GlobalSetup
{
[SetUp]
public void setUp()
{
// Setup code
}
}
下面是我的测试用例
[TestFixture]
public class Products : GlobalSetup
{
[Test, Description("Test description here")]
public void GetProductsByProductID()
{
}
[Test]
public void GetHeader()
{
}
[Test]
public void GetMyProducts()
{
}
}
尽管安装程序正在运行,但它对每个测试用例运行一次。我希望整个测试套件只运行一次安装程序。你们能帮助我如何在整个套件中只运行一次安装程序吗
另外,当我使用如下所示的GlobalSetUp文件时,setup方法为每个测试用例运行了两次
注意:我正在使用NUnit 2.6.4NUnit属性导致在每个测试方法之前执行方法
您需要的是一个属性,用于标记一次性设置方法。NUnit属性导致在每个测试方法之前执行方法
您需要的是一个属性,用于标记一次性设置方法。当您说要为测试套件运行一次全局设置时,您是指TestFixture吗?在我的回答中,我假设您这样做,但请记住,程序集是一个测试套件,每个命名空间都是一个测试套件,等等 在运行任何测试之前,为设备运行一次全局设置。将GlobalSetUp类中的SetUp属性更改为TestFixtureSetUp属性。(如果您使用的是NUnit 3.x,它将是OneTimeSetUp属性)
如果您指的不是测试夹具,我可以为您编辑此答案。当您说要为测试套件运行一次全局设置时,您是指测试夹具吗?在我的回答中,我假设您这样做,但请记住,程序集是一个测试套件,每个命名空间都是一个测试套件,等等 在运行任何测试之前,为设备运行一次全局设置。将GlobalSetUp类中的SetUp属性更改为TestFixtureSetUp属性。(如果您使用的是NUnit 3.x,它将是OneTimeSetUp属性)
如果您指的不是测试夹具,我可以为您编辑此答案。请查看文档。@JeroenHeier但我在SetupFixture示例中看到,它在类级别标记,在方法级别标记。我也可以在方法级别标记[SetupFixture]吗?请看文档。@JeroenHeier,但我在SetupFixture中看到这个示例是在类级别标记的,在方法级别标记的。我也可以在方法级别标记[SetupFixture]吗?但在这个示例中,我看到它在类级别标记,在方法级别标记。我也可以在方法级别标记[SetupFixture]吗?@CodeFuller说错了。SetUpFixture是一个fixture,即类。它包含NUnit 2.x中的SetUp方法或NUnit 3.x中的OneTimeSetUp方法。抱歉,我将SetUpFixture与TestFixtureSetUp混淆了。相应地更正了我的答案。谢谢@CodeFuller,它非常有用,但我在这个例子中看到它在类级别和方法级别被标记。我也可以在方法级别标记[SetupFixture]吗?@CodeFuller说错了。SetUpFixture是一个fixture,即类。它包含NUnit 2.x中的SetUp方法或NUnit 3.x中的OneTimeSetUp方法。抱歉,我将SetUpFixture与TestFixtureSetUp混淆了。相应地更正了我的答案。谢谢@CodeFuller它非常有用谢谢Charlie,这就是我想要的。谢谢Charlie,这就是我想要的。