如何用maven运行特定的test case

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

运行一个单独的test

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

mvn -Dtest=TestCircle test

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

mvn surefire:test -Dtest=TestCircle

你还可以用表达式来运行一组测试:

mvn -Dtest=TestCi*le test

或者用多个名字/模式,只需要用逗号把他们分开:

mvn -Dtest=TestSquare,TestCi*le test

运行单个test class中的一组测试

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

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

mvn -Dtest=TestCircle#mytest test

当然还是可以用模式:

mvn -Dtest=TestCircle#test* test

在Surefire Plugin 2.19之后,你还可以这样写:(JUnit 4, JUnit 4.7+ 以及 TestNG):

mvn -Dtest=TestCircle#testOne+testTwo test

支持多格式的模式

在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
mvn "-Dtest=Basic*, !%regex[.*.Unstable.*], !%regex[.*.MyTest.class#one.*|two.*], %regex[#fast.*|slow.*]" test
  • 其中感叹号 (!) 表示不运行tests.
  • 在正则表达式之外的问号 (?) 表示任意一个字符。
  • 在使用正则表达式的时候,文件后缀不是必须的。
  • 可用/作为路径访问。

pom.xml定义测试

在Surefire Plugin 2.19之后,还可以把要运行的case写到pom.xml中:

<test>my.package.???Test#testMethod, another.package.*</test>
  • 列表内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值