c# - 如何忽略特定派生类的基类中的 'shared' NUnit 测试

标签 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]标记它们,以便每个人都可以运行剩余的测试,而不必担心已知的故障。

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

最佳答案

您可以使用Assume.That,而不是使用ignore。

[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 测试资源管理器中显示为“不确定”(蓝色))。

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

关于c# - 如何忽略特定派生类的基类中的 'shared' NUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979117/

相关文章:

c# - 为什么提取接口(interface)后可以替换底层实现?

build - CAKE build 和 NUNIT3 生成空结果文件

c#-4.0 - 如何告诉nunit-console在Mono下使用4.0?

c# - 如何为依赖于其他服务或数据库的服务编写单元测试

c# - 我的 if 条件不能正常工作

c# - 当鼠标光标悬停在 WPF 中的按钮上时,如何显示工具提示

c# - Rhino Mocks - 将 Expect.Call 用于具有两个签名的方法

c# - 单元测试 MongoWriteExceptions

c# - Python 中的参数可以是逆变的还是协变的?

c# - 求二维曲线双切线的算法