一次初始化Nunit

我应该在哪里放置只能运行一次的代码(而不是每个类)? 这个例子是一个初始化数据库连接string的语句。 我只需要运行一次,而且我不想在每个“TestFixture”类中放置一个新的方法。

[SetUpFixture]属性允许您在相同名称空间下对所有testing运行设置和/或拆卸代码一次。

这里是关于SetUpFixture的文档。 根据文件:

任何名称空间之外的SetUpFixture为整个程序集提供SetUp和TearDown。

所以如果你需要所有testing的SetUpTearDown ,那么只要确保SetUpFixture类不在名字空间中。

或者,您可以始终严格定义一个静态类来定义“全局”testingvariables。

创build一个类(我叫我的configuration),并用[SetUpFixture]属性来装饰它。 类中的[SetUp][TearDown]方法将运行一次。

 [SetUpFixture] public class Config { [SetUp] // [OneTimeSetUp] for NUnit 3.0 and up; see http://bartwullems.blogspot.com/2015/12/upgrading-to-nunit-30-onetimesetup.html public void SetUp() { } [TearDown] public void TearDown() { } } 

NUnit 3 :

 [SetUpFixture] public class TestLogging { [OneTimeSetUpAttribute] public void Setup() { DoStuff(); } }