组合中的NUnit类别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

在NUnit testfixtrues中,有一些东西

[Test,Category("catA")]
public void test1
{
    //
}

[Test,Category("catB")]
public void test2
{
    //
}

[Test,Category("catA")]
[Test,Category("catB")]
public void test3
{
    //
}

现在在NUnit GUI中,我希望能够选择catA和catB,并运行catA catB 所在的测试。目前情况并非如此,NUnit将运行所有3个测试。

有没有办法将这种行为改为AND条件而不是OR?

我目前正在运行v2.5.0.9122。

提问于
用户回答回答于

不可以。只能运行属于两个或更多特定类别的测试。

顺便说一句,你不需要在test3方法中指定[Test]2次。

[Test]
[Category("catA")]
[Category("catB")]
public void test3
{
    //
}
用户回答回答于

基于文档:CatA + CatB

http://www.nunit.org/index.php?p=consoleCommandLine&r=2.5.1

指定测试类别以包含或排除

NUnit提供CategoryAttribute用于将测试标记为属于一个或多个类别。可以使用/ include和/ exclude选项在测试运行中包含或排除类别。以下命令仅运行BaseLine类别中的测试:

nunit-console myassembly.dll / include:BaseLine以下命令运行除数据库类别中的所有测试外的所有测试:

nunit-console myassembly.dll / exclude:数据库可以在任一选项上指定多个类别,方法是使用逗号分隔它们。

注意:从NUnit 2.4开始,可以在命令行上组合/ include和/ exclude选项。当两者都使用时,所有包含类别的测试都会运行,但排除类别的测试除外。

从NUnit 2.4.6开始,可以使用以下任一选项的类别表达式:

  • A | B | C选择具有任何类别A,B或C的测试。
  • A,B,C选择具有任何类别A,B或C的测试。
  • A + B + C仅选择分配了所有三个类别的测试
  • A + B | C用A和B或C选择测试。
  • A + BC用A和B选择测试,但不选择C.
  • -A选择未分配类别A的测试
  • A +(B | C)选择同时具有类别A和B或C的测试逗号运算符等于| 但具有更高的优先权。评估顺序如下: 一元排除运算符( - )高优先级联合运算符(,)交集和集合减法运算符(+和二进制 - )低优先级联合运算符(|)注意:由于运算符字符具有特殊含义,因此应避免创建一个类别在它的名字中使用它们中的任何一个。例如,类别“db-tests”不能在命令行中使用,因为它似乎意味着“运行类别db,除了类别测试”。相同的限制适用于正在使用的shell具有特殊含义的字符。

所属标签

可能回答问题的人

  • 人生的旅途

    10 粉丝484 提问5 回答
  • 无聊至极

    4 粉丝504 提问5 回答
  • 嗨喽你好

    7 粉丝480 提问4 回答
  • Richel

    8 粉丝0 提问3 回答

扫码关注云+社区

领取腾讯云代金券