如何忽略共享' NUnit测试特定派生类的基类

时间:2017-10-27 15:58:25

标签: c# nunit

我有一个测试套件可以在许多不同的场景中运行功能。'在每个场景中,关于该功能的某些事实必须始终为真,此外还有一些额外的场景特定事项需要检查。

我已经在我的测试类中使用继承来构建它,如下所示:

abstract class BaseTestScenario
- Common [Test]s for all scenarios

class Scenario1 : BaseTestScenario
- [Test]s specific to scenario 1

class Scenario2 : BaseTestScenario
- [Test]s specific to scenario 2

... etc ...

这很好用,但现在我有一些测试失败要处理。理想情况下,我可以使用[Ignore]标记特定的失败,同时我会解析它们,以便每个人都可以运行剩余的测试而不必担心已知的失败。

有没有办法在特定情况下使用[Test]标记我的常用[Ignore]之一,而不会影响其他情景?

1 个答案:

答案 0 :(得分:3)

您可以使用Assume.That

,而不是使用忽略
[Test]
public override void SomeTest()
{
    // Run some logic to determine if the test should be skipped.
    bool skipThisTest = true;

    Assume.That(skipThisTest, "This test doesn't apply here.");
}

结果是测试不会运行(它将在Visual Studio测试资源管理器中显示为Inconclusive(蓝色))。

请注意,如果您在类构造函数中调用Assume.That,这也会有效。