maven:如何通过命令行选项跳过某些项目的testing?
在我的maven项目中,我有一些模块。 是否可以通过命令行选项closures某些模块的运行unit testing?
我的项目需要大约15分钟才能完成所有的unit testing。 我想通过在我正在处理的模块中运行unit testing来加速整个构build。 我不想进入和编辑每个单独的pom.xml来实现这一点。
我试过这里概述的解决scheme: 我可以通过maven运行特定的testngtesting组吗? 但是,结果是我想跳过的模块中有很多testing失败。 我想'组'是不是同一个模块的概念?
要为整个项目打开和closuresunit testing,请使用Maven Surefire Plugin跳过testing的function 。 从命令行使用skipTests有一个缺点。 在多模块构build场景中,这将禁用所有模块的所有testing。
如果您需要对模块的一部分testing进行更细粒度的控制,请使用Maven Surefire插件的testing包含和排除function 。
要允许命令行覆盖,请在configurationSurefire插件时使用POM属性。 以下面的POM部分为例:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.9</version> <configuration> <excludes> <exclude>${someModule.test.excludes}</exclude> </excludes> <includes> <include>${someModule.test.includes}</include> </includes> </configuration> </plugin> </plugins> </build> <properties> <someModule.skip.tests>false</someModule.skip.tests> <skipTests>${someModule.skip.tests}</skipTests> <someModule.test.includes>**/*Test.java</someModule.test.includes> <someModule.test.excludes>**/*Test.java.bogus</someModule.test.excludes> </properties>
通过像上面这样的POM,您可以以各种方式执行testing。
- 运行所有testing(上述configuration包括所有** / * Test.javatesting源文件)
mvn test
- 跳过所有模块的所有testing
mvn -DskipTests=true test
- 跳过特定模块的所有testing
mvn -DsomeModule.skip.tests=true test
- 只对特定的模块运行某些testing(这个例子包括所有** / * IncludeTest.javatesting源文件)
mvn -DsomeModule.test.includes="**/*IncludeTest.java" test
- 排除特定模块的某些testing(本示例不包括所有** / * ExcludeTest.java源文件)
mvn -DsomeModule.test.excludes="**/*ExcludeTest.java" test
…如果你想在Hudson / Jenkins传递参数给Maven发布插件,你必须使用-Darguments=-DskipTests
才能正常工作。
如果你想使用Mavenconfiguration文件:
你可能想要做这样的事情:
- 在Maven的某些模块中跳过testing
我不知道是否有一个支持的命令行选项相同。
你也可以尝试直接使用环境属性,按照这个文档页面:
即像这样的东西:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <configuration> <skipTests>${moduleA.skipTests}</skipTests> </configuration> </plugin>
然后使用mvn -DmoduleA.skipTests=false test
来testing这个模块。
- Android / Maven项目中如何处理缺lesssrc / test / java源文件夹?
- Maven错误:无法find或加载主类org.codehaus.plexus.classworlds.launcher.Launcher
- 春季启动 – 父母当你已经有一个父母的POM
- 从Maven启动H2数据库服务器?
- 从命令提示符处执行具有多个类path库的jar文件
- 什么是maven中的“pom”包装?
- 如何使用Maven 2 Tomcat插件运行Tomcat 7?
- javax.servlet.jsp.PageContext无法parsing为types
- 未经testing的Maven包装(跳过testing)