Vol*_*ıcı 9 java maven maven-surefire-plugin
dad给定一个带有模块和的 Maven 项目son,其中son依赖于dad,也mvn -am -pl son test运行测试dad。有没有办法避免这种情况并且只对son模块运行测试?
请注意,有几种方法可以实现此目的,尽管每种方法都有其自己的警告,但我不喜欢:
-Dtest="**/son/*Test.java" -DfailIfNoTests=false覆盖maven-surefire-plugin模块中的配置。-Dtest,JUnit 5 标签也可以被过滤,但这种方法也有前面提到的同样的缺点。install -DskipTests=true然后执行mvn -pl son test,尽管这会因部分工作而污染本地 Maven 存储库。在 Maven 3.3.9 上,我运行:
mvn test -pl :web-module
运行网络模块。<module>web-module</module>在 POM 中,标签内应如下所示modules。
要测试该模块内的特定类:
mvn test -pl :web-module -Dtest="ClassUnderTest"
小智 1
我被这个问题困扰了一段时间,但最终我找到了解决方案。
这是我的条件:
mvn clean test -pl C 对我不起作用,因为 2。mvn clean test -pl C -am 为我工作,但它运行所有模块测试。这是我的想法:
之所以mvn clean test -pl C -am运行所有测试,是因为C依赖于A和B,所以模块C必须先编译A和B,然后再编译C。
这些是决议:
mvn clean test -DmoduleCTest=true模块C pom是这样的,另一个模块也是同样的方式,但是有diff profile id。
<profiles>
<profile>
<id>moduleCTest</id>
<activation>
<property>
<name>moduleCTest</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>false</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |