我正在Jenkins / Mono上运行NUnit测试,这就是我的命令:
mono /opt/NUnit-3.8.0/nunit3-console.exe $WORKSPACE/ProjectName/bin/$CONFIG/ProjectName.dll --where="test~=$TEST_NAME" --config=$CONFIG
这个想法是能够使用正则表达式选择测试。现在,我想选择使用Regex的测试,但忽略大小写。我尝试过这样的事情:
TEST_NAME = ^.*(?i)something(?-i).*$
还尝试了:
TEST_NAME = ^.*something.*$/i
但是我遇到了“意外标记'('”和“意外标记'/'”错误。是否可以使用不区分大小写的修饰符?
答案 0 :(得分:2)
NUnit console runner --where=EXPRESSION
使用特定的test selection language(TSL),其中
表示要运行哪些测试的表达式。它可以指定测试 名称,类,方法,类别或属性进行比较 运算符==,!=,=〜和!〜的实际值。
对于匹配正则表达式,NUnit用户使用.NET的Regex.IsMatch 方法...如here所述。
像这样尝试,并在上面链接的TSL文档中查看示例。
--where "test =~ /(?i).*mytest/"
但是,如果您使用的是NUnit V2,则可能不走运:
NUnit V2的驱动程序支持TSL的子集。因为V2 NUnit 框架仅允许过滤测试名称和类别,您可以 只在比较中使用cat和test关键字。此外, 不支持正则表达式运算符=〜和!〜。