有没有办法提供一些命令行参数,以便跳过所有测试但在某个模块上只有一个?所以每次我需要运行另一个测试时我都不需要更改pom.xml吗?
例如,我想在TeamCity上创建构建配置,并提供命令行参数以在某个模块中仅运行单个测试。下次我需要更改它并运行另一个测试,依此类推。
也许不是如何使用CI,但仍然如此。
答案 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