maven ::在多模块项目中仅运行单个测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven ::在多模块项目中仅运行单个测试相关的知识,希望对你有一定的参考价值。
有没有办法提供一些命令行参数,以跳过所有测试,但在某些模块上有一个?所以每次我需要运行另一个测试时我都不需要更改pom.xml吗?
例如,我想在TeamCity上创建构建配置,并提供命令行参数以在某个模块中仅运行单个测试。下次我需要更改它并运行另一个测试,依此类推。
也许不是如何使用CI,但仍然如此。
我假设你已经阅读了有关running a single test under surefire的文档?他们没有告诉你的是如何在子模块中做到这一点:
mvn test -Dtest=testname -pl subproject
其中subproject
是包含该测试的项目。从mvn手册页:
-pl, - projects arg以逗号分隔的指定反应堆项目列表,而不是所有项目。项目可以由[groupId]:artifactId或其相对路径指定。
对于依赖于要构建的其他子模块的项目,我看到的其他答案并不完全。一种选择是运行mvn install
以将所需的罐安装到~/.m2/...
中,但该选项不是很“干净”。
以下命令将构建子模块,并仅运行指定的测试类。这将在父模块级别运行。此外,无需指定子模块名称。
mvn test -DfailIfNoTests=false -Dtest={test_class_name} -am
顺便说一句,这也可以是mvn clean test -Dfa.....
。在运行测试时总是运行clean
是我个人的习惯。
参考..
-am
将制作所有其他子模块。
-DfailIfNoTests=false
并没有使整个过程失败,因为我们不打算在其他模块中运行测试。
由于-pl
已经在构建一切,因此不需要-am
选项
如果要测试的模块依赖于其他项目,则解决方案通过将命令更改为:
mvn test -DfailIfNoTests=false -Dtest=testname -pl subproject
参考:http://www.automatethebox.com/2015/12/some-helpful-commands-to-build-multi.html
以上是关于maven ::在多模块项目中仅运行单个测试的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring 在多模块 Maven 项目中进行集成测试
在多模块 Maven 项目中运行 exec-maven-plugin 时出现问题
在多模块 maven 项目中的模块之间共享 src/test 类
如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试