在 GitHub 上叉我

运行单个测试

在开发过程中,您可能会重复运行一个测试类。要通过 Maven 运行它,请将it.test属性设置为特定的测试用例。

mvn -Dit.test=ITCircle verify

it.test参数的值是测试类的名称(不带扩展名;如果您不小心提供了扩展名,我们将删除该扩展名)。

您还可以使用模式来运行许多测试:

mvn -Dit.test=ITCi*le verify

您可以使用多个名称/模式,以逗号分隔:

mvn -Dit.test=ITSquare,ITCi*le verify

注意:对“test”参数使用语法,例如“foo/MyTest.java”、“**/MyTest.java”、“MyTest”(参见包含/排除)。

在单个测试类中运行一组方法

从 Surefire 2.7.3 开始,您还可以只运行测试类中的一部分测试。

注意:此功能仅支持 Junit 4.x 和 TestNG。对“test”参数使用语法,例如“foo/MyTest.java”、“**/MyTest.java”、“MyTest”(参见包含/排除)。

您应该使用以下语法:

mvn -Dit.test=ITCircle#mytest verify

你也可以使用模式

mvn -Dit.test=ITCircle#test* verify

从 Failsafe Plugin 2.19 开始,您可以选择多种方法(JUnit 4、JUnit 4.7+ 和 TestNG):

mvn -Dit.test=ITCircle#testOne+testTwo verify

请注意,此功能仅在 Failsafe Plugin 2.12.1 之后才在 JUnit 4 提供程序中可用。

多种格式合二为一

从 Failsafe Plugin 2.19 开始,一种模式支持多种格式(JUnit 4、JUnit 4.7+、TestNG):

mvn "-Dit.test=???IT, !Unstable*, pkg/**/Ci*leIT.java, *IT#test*One+testTwo?????, #fast*+slowTest" verify
mvn "-Dit.test=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyIT.class#one.*|two.*], %regex[#fast.*|slow.*]" verify

感叹号 (!) 不包括测试。非正则表达式模式中的字符 (?) 替换文件名或路径中的一个字符。在非正则表达式模式中,文件扩展名不是强制性的,可以使用带有斜杠的包。正则表达式验证完全限定的类文件,并在 (#) 之后分别验证测试方法,但类是可选的。正则表达式仅支持“.class”文件扩展名。请注意,不支持以 (#) 字符标记的正则表达式注释。参数化 JUnit 运行器使用括号中的索引来描述测试方法,因此非正则表达式方法模式将变为#testMethod[*]. 如果使用 JUnit 注释@Parameters(name="{index}: fib({0})={1}")并在模式中选择索引,例如 5,则非正则表达式方法模式将变为#testMethod[5:*].

完全限定的类名

从 Failsafe Plugin 2.19.1 开始,可以使用具有完全限定类名或包的语法,例如:

<test>my.package.???Test#testMethod, another.package.*</test>

字符 (?) 替换单个字符, (*) 表示零个或多个字符。可以额外组合多种格式。