【发布时间】:2020-04-06 16:27:32
【问题描述】:
我有一个包含多个 TestFixture 的项目,我想为每个测试定义相同的 [SetUp] [TearDown] 方法。考虑到我有很多 TestFixture,我想避免编辑所有文件来添加这两个指令。
浏览 nunit 文档,我认为 [SetUpFixture] 是完美的解决方案。 所以我复制了example 并尝试运行它,但似乎我的 TearDown 方法从未运行过,而 SetUp 正在按我的预期执行。为了断言这一点,我只是使用了 throw 语句。
我的问题是:
- 我的用例有问题吗?我应该采取不同的方式来实现我的目标吗?
- 我是否错误地使用了 SetUpFixture 属性?
下面是我的 SetUpFixture 类。我正在使用 Nunit 3.11。
using System;
using NUnit.Framework;
namespace MyTestProject
{
[SetUpFixture]
public class MySetUpClass
{
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
StaticClass.Init();
// throw new InvalidOperationException("SetUp reached");
}
[OneTimeTearDown]
public void RunAfterAnyTests()
{
StaticClass.Finalize();
// throw new InvalidOperationException("TearDown reached");
}
}
}
【问题讨论】: