以编程方式跳过nunit测试

And*_*son 37 .net nunit unit-testing

有没有办法让nunit测试结束并告诉测试运行器它应该被认为是跳过/忽略,而不是成功或失败?

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

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

我知道[Ignore]属性,但这是编译的.我正在寻找一个运行时,程序化的等价物.就像是:

if (testNotApplicable)
    throw new NUnit.Framework.IgnoreTest("Not applicable");
Run Code Online (Sandbox Code Playgroud)

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

Ada*_*Dev 40

Assert.Ignore();
Run Code Online (Sandbox Code Playgroud)

特别是你要求的,虽然还有:

Assert.Inconclusive();
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!我不敢相信我错过了Assert.Ignore,但它正是我所需要的.看起来像Assert.Inconclusive是在nunit 2.5中引入的,因为我还在使用2.4.8,所以我至少有一个不知道那个的借口...... (2认同)