以编程方式跳过nunit测试

时间:2010-11-04 10:00:25

标签: .net unit-testing nunit

是否有办法让nunit测试结束并告诉测试运行员应该考虑跳过/忽略,而不是成功或失败?

我的动机是,我有一些测试在某些情况下不适用,但在测试(或可能是灯具)开始运行之前无法确定。

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

我知道[Ignore]属性,但这是编译的。我正在寻找一个运行时,程序化的等价物。类似的东西:

if (testNotApplicable)
    throw new NUnit.Framework.IgnoreTest("Not applicable");

或者以编程方式跳过测试错误?如果是这样,我该怎么办?

2 个答案:

答案 0 :(得分:40)

Assert.Ignore();

具体是你要求的,但也有:

Assert.Inconclusive();

答案 1 :(得分:0)

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

    //This flag is the most important.False means we want to just ignore that tests
    if (!RunFullTests)
        Assert.Inconclusive();

RunFullTests 是位于常量类中的全局布尔变量。如果我们将其设置为false,则将忽略整个测试类,并忽略此类下的所有测试。

我在进行集成测试时使用它。