NUnit中的自定义过滤器可能吗?

Wes*_*ser 8 nunit filter

是否可以定义自定义过滤器,以便NUnit只运行特定的测试?我的许多Nunit测试都标有自定义属性"BugId".是否可以编写一个过滤器,以便我可以传入一个数字,只运行具有该属性和数字的测试?如果是这样显示模型或真实代码.

Bla*_*rad 5

过滤器是否需要使用您的自定义属性,或者您是否可以使用NUnit 类别?就像是

[Test]
[Category("BugId-12234")]
public void Test()
{
  ....
}
Run Code Online (Sandbox Code Playgroud)

...然后使用/include=STR标志:

nunit-console /include=BugId-12234 ...
Run Code Online (Sandbox Code Playgroud)

?我建议将Category子类化为自定义属性,但我认为这不允许您向属性添加可切换参数...


Wes*_*ser 3

从 NUnit 2.4.6 开始,NUnit 属性不再被密封,子类将被识别为其基类。因此:

public class BugId : TestAttribute
{
    public BugId(int bugNumber) : base("Test for Bug #" + bugNumber) { }
}

[BugId(1)]
public void Test() {}
Run Code Online (Sandbox Code Playgroud)

可以像这样在命令行上调用:

nunit-console /include="测试 Bug #1"