我有一个测试套件,可以在许多不同的“场景”中测试某个功能。在每种场景中,有关该功能的某些事实必须始终为真,此外还需要检查一些额外的特定于场景的事情。
我在我的测试类中使用继承来构建它,如下所示:
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/