如何用maven运行特定的test case

2025-01-24 19:14:06
推荐回答(2个)
回答1:

最近碰到了一些特殊的问题,有些test case在IDE里面运行是可以pass的,但通过Maven运行就一定会出问题。这里不深入讨论,这类测试一般都是和entity manager有关的。今天记录一下在这过程中,maven的一些测试特性:如何用Maven运行特定的test case。

运行一个单独的test

在开发过程中,你有可能需要重复的单独运行一个test class。要用mavan做到这个,需要把test属性设为你想要的test class的名字。(不需要后缀名,如果不小心添加了,也会被mvn去掉)

mvn -Dtest=TestCircle test
1
如果你pom.xml里面的surefile plugin配置了多个测试层级,有可能你只想执行默认的测试层级:

mvn surefire:test -Dtest=TestCircle
1
你还可以用表达式来运行一组测试:

mvn -Dtest=TestCi*le test
1
或者用多个名字/模式,只需要用逗号把他们分开:

mvn -Dtest=TestSquare,TestCi*le test
1
运行单个test class中的一组测试

在maven-surefire-plugin的2.7.3之后, 你可以运行单个test class中的特定test,语法如下:

(NOTE : 这个功能只能支持Junit 4.x和TestNG)

mvn -Dtest=TestCircle#mytest test
1
当然还是可以用模式:

mvn -Dtest=TestCircle#test* test
1
在Surefire Plugin 2.19之后,你还可以这样写:(JUnit 4, JUnit 4.7+ 以及 TestNG):

mvn -Dtest=TestCircle#testOne+testTwo test
1
支持多格式的模式

在Surefire Plugin 2.19之后,你甚至可以在一条模板中用多种格式: (JUnit 4, JUnit 4.7+, TestNG):

mvn "-Dtest=???Test, !Unstable*, pkg/**/Ci*leTest.java, *Test#test*One+testTwo?????, #fast*+slowTest" test

回答2:

是指不知道包在哪儿?可以看一下你eclipse里配置的maven路径是哪儿,然后去找到setting.xml,看看里面配置的仓库路径,所有包都在那里。