Java 从命令行使用JUnit Categories runner和matchAny以及Maven Surefire
我有两个我想要交叉的JUnit测试过滤器:优先级(例如高、中、低)和功能(例如帐户、商店、结帐)。Java 从命令行使用JUnit Categories runner和matchAny以及Maven Surefire,java,maven,command-line,junit,maven-surefire-plugin,Java,Maven,Command Line,Junit,Maven Surefire Plugin,我有两个我想要交叉的JUnit测试过滤器:优先级(例如高、中、低)和功能(例如帐户、商店、结帐)。 JUnit Categories runner似乎非常适合这一点,因为它支持matchAny标志,它可以执行我需要的交叉过滤器(例如,标记为“高”优先级和“签出”功能的返回测试,执行AND而不是OR) 我使用Maven Surefire执行测试,它通过相应的组参数支持JUnit类别。这项工作: mvn test -Dgroups="priority.High, feature.Checkout"
JUnit Categories runner似乎非常适合这一点,因为它支持
matchAny
标志,它可以执行我需要的交叉过滤器(例如,标记为“高”优先级和“签出”功能的返回测试,执行AND而不是OR)
我使用Maven Surefire执行测试,它通过相应的组参数支持JUnit类别。这项工作:
mvn test -Dgroups="priority.High, feature.Checkout"
不幸的是,它应用了默认的matchAny
值,即true
,结果是OR组合,而不是AND
问题:如何通过Surefire命令行传递matchAny=false
?您不需要传递matchAny=false
。只需按以下步骤操作:
mvn test -Dgroups="priority.High && feature.Checkout"
这应该运行那些只指定了两个类别的测试。我担心这是不可能的,surefire插件不支持这一点,也不可能通过相反的方法(使用ExcludedGroup
和fo cli ease以及配置文件和属性)来实现。