有没有办法让 NUnit 测试结束并告诉测试运行者它应该被视为跳过/忽略,而不是成功或失败?
我这样做的动机是,我有一些不适用于某些情况的测试,但这在测试(或者可能是固定装置)开始运行之前无法确定。
显然,在这些情况下,我可以从测试返回并允许其成功,但是(a)这似乎是错误的,并且(b)我想知道测试已被跳过。
我知道 [Ignore] 属性,但这是已编译的。我正在寻找一个运行时的、编程的等价物。比如:
if (testNotApplicable)
throw new NUnit.Framework.IgnoreTest("Not applicable");
或者以编程方式跳过测试是错误的吗?如果是这样,我应该做什么?
Assert.Ignore();
正是您所要求的,尽管还有:
Assert.Inconclusive();
文档:
https://docs.nunit.org/articles/nunit/writing-tests/assertions/special-assertions/Assert.Ignore.html
我有一个
TestInit()
,TestInitialize
方法,其中存在如下条件:
//This flag is the most important.False means we want to just ignore that tests
if (!RunFullTests)
Assert.Inconclusive();
RunFullTests 是位于常量类中的全局布尔变量。如果我们将其设置为 false,则整个测试类将被忽略,并且该类下的所有测试都将被忽略。
我在进行集成测试时使用它。