为每个测试夹具定义相同的设置和拆卸

问题描述 投票:1回答:1

我有一个带有多个TestFixture的项目,我想为每个测试定义相同的[SetUp] [TearDown]方法。考虑到我有许多TestFixture,我想避免编辑所有文件以添加两个说明。

浏览nunit文档,我认为[SetUpFixture]是完美的解决方案。因此,我复制了example并尝试运行它,但似乎我的TearDown方法从未运行过,而SetUp正在按我期望的那样执行。要断言这一点,我只使用了throw语句。

我的问题是:

  1. 我用例错了吗?我应该做些别的事情来实现自己的目标吗?
  2. 我是否错误使用了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");
    }
  }
}
c# nunit
1个回答
0
投票
  1. 您的用例很好,您可以通过定义[Setup]和[Teardown]的基类来完成此操作。如果继承,则每个测试将运行一次。它记录在https://github.com/nunit/docs/wiki/SetUp-and-TearDown

  2. 该帮助对我来说似乎并不明确,您对结果的解释也不是很清楚,但是我建议您在StaticClass调用之前尝试一些断点或记录日志,以确保它们不会干扰您的行为。

© www.soinside.com 2019 - 2024. All rights reserved.