我有一个带有多个TestFixture的项目,我想为每个测试定义相同的[SetUp] [TearDown]方法。考虑到我有许多TestFixture,我想避免编辑所有文件以添加两个说明。
浏览nunit文档,我认为[SetUpFixture]是完美的解决方案。因此,我复制了example并尝试运行它,但似乎我的TearDown方法从未运行过,而SetUp正在按我期望的那样执行。要断言这一点,我只使用了throw语句。
我的问题是:
下面是我的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");
}
}
}
您的用例很好,您可以通过定义[Setup]和[Teardown]的基类来完成此操作。如果继承,则每个测试将运行一次。它记录在https://github.com/nunit/docs/wiki/SetUp-and-TearDown。
该帮助对我来说似乎并不明确,您对结果的解释也不是很清楚,但是我建议您在StaticClass调用之前尝试一些断点或记录日志,以确保它们不会干扰您的行为。