.net 以编程方式跳过NUnit测试

.net 以编程方式跳过NUnit测试,.net,unit-testing,nunit,.net,Unit Testing,Nunit,NUnit测试是否有方法结束并告诉测试运行者应该将其视为跳过/忽略,而不是成功或失败 我这样做的动机是,我有一些测试在某些情况下不适用,但在测试(或者夹具)开始运行之前,这无法确定 显然,在这种情况下,我可以从测试中返回并允许它成功,但是(a)这似乎是错误的,(b)我想知道测试被跳过了 我知道[Ignore]属性,但这是在中编译的。我正在寻找一个运行时的、编程的等效程序。比如: if (testNotApplicable) throw new NUnit.Framework.Ignore

NUnit测试是否有方法结束并告诉测试运行者应该将其视为跳过/忽略,而不是成功或失败

我这样做的动机是,我有一些测试在某些情况下不适用,但在测试(或者夹具)开始运行之前,这无法确定

显然,在这种情况下,我可以从测试中返回并允许它成功,但是(a)这似乎是错误的,(b)我想知道测试被跳过了

我知道[Ignore]属性,但这是在中编译的。我正在寻找一个运行时的、编程的等效程序。比如:

if (testNotApplicable)
    throw new NUnit.Framework.IgnoreTest("Not applicable");
还是以编程方式跳过测试是错误的?如果是这样,我应该怎么做

Assert.Ignore();
这是您特别要求的,但也有:

Assert.Inconclusive();

我有一个
TestInit()
TestInitialize
方法,其中存在如下条件:

    //This flag is the most important.False means we want to just ignore that tests
    if (!RunFullTests)
        Assert.Inconclusive();
RunFullTests是一个位于常量类中的全局布尔变量。如果我们将其设置为false,那么整个测试类将被忽略,并且该类下的所有测试都将被忽略


我在进行集成测试时使用此选项。

谢谢!我不敢相信我错过了断言。忽略它,但它正是我所需要的。它看起来像Assert.Inconclusive是在NUnit2.5中引入的,因为我仍然在使用2.4.8,所以我至少有理由不知道这一点。。。