maven ::在多模块项目中仅运行单个测试

时间:2012-08-08 17:15:54

标签: unit-testing maven continuous-integration

有没有办法提供一些命令行参数,以便跳过所有测试但在某个模块上只有一个?所以每次我需要运行另一个测试时我都不需要更改pom.xml吗?

例如,我想在TeamCity上创建构建配置,并提供命令行参数以在某个模块中仅运行单个测试。下次我需要更改它并运行另一个测试,依此类推。

也许不是如何使用CI,但仍然如此。

2 个答案:

答案 0 :(得分:71)

我假设您已阅读有关running a single test under surefire的文档?他们没有告诉你的是如何在子模块中做到这一点:

mvn test -Dtest=testname -pl subproject

subproject是包含该测试的项目。从mvn手册页:

  

-pl, - projects arg以逗号分隔的指定反应堆项目列表,而不是所有项目。项目可以由[groupId]:artifactId或其相对路径指定。

答案 1 :(得分:13)

如果要测试的模块依赖于其他项目,则解决方案通过将命令更改为:

来工作
mvn test -DfailIfNoTests=false -Dtest=testname -pl subproject

参考:http://www.automatethebox.com/2015/12/some-helpful-commands-to-build-multi.html