2013-01-11 47 views

回答

6

事实证明,这个功能在NUnit中确实存在,它不是非常明显或直观。

根据Charlie Poole在我为此功能here所做的功能请求中,他声明以下内容将起作用,这是他的直接引用。

使用[SetUpFixture]在任何名称空间外部装饰类。 用[TearDown]装饰该类的方法。如果你喜欢,用[设置]装饰另一个 。从你问什么

差异:

  1. 的名称可以在这种用法有点不明显。

  2. NUnit允许任意数量的这些并且全部调用它们,没有任何订购保证。这是设计。

  3. 它可以应用于静态或实例方法。如果它是一个实例方法,则该类必须具有默认构造函数,并且将在整个测试运行的生命周期内创建它。这也是通过 的设计。

现在,这是不漂亮,但它应该达到相同的功能,也许他会使其少许清洁剂3.0。 :)

+0

从NUnit 3开始,这会引发一个异常:SetUpFixture中不允许使用OneTimeSetUp:TearDownAttribute属性,它到'[OneTimeTearDown]'修复了这个问题。 – MrLore

1

在NUnit中没有这样的概念。但是你可以使用TestFixtureTearDownAttribute来释放TestFixture获得的资源。

+0

谢谢,这是我担心的,因为有所有需要清理的TestFixtures使用的非托管资源,以及将MSTest项目移植到NUnit时,我遇到了这个问题。 –

+0

为此创建了一项要添加到NUNit的功能请求。如果你有兴趣可以在这里找到:https://bugs.launchpad.net/nunitv2/+bug/1098766 –