【发布时间】:2020-02-20 10:22:00
【问题描述】:
我正在尝试将我的集成测试与通常的生命周期分开,这意味着我不希望它们在mvn install 期间执行。我有以下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<excludes>
<exclude>**/*IT.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
<goals>
<goal>integration-test</goal>
</goals>
</plugin>
而且我的集成测试都是以IT 为后缀的。我能够确认 surefire 确实排除了 *IT.java 测试,但似乎在 mvn install 期间触发了 failsafe。我错过了什么?
感谢您的帮助
【问题讨论】:
-
首先,您在默认情况下存在的两个插件中排除/包含此内容。是的,使用
mvn install将执行故障安全插件,因为它绑定到集成测试阶段......要执行集成测试,您通常应该只使用mvn clean verify... -
但是如何从 mvn install 中排除它们?
-
如果您想阻止运行集成测试,您必须使用配置文件...
-
你想做什么?
install阶段在 maven 中的verify阶段之后,这个verify阶段将进行集成测试。而当你执行mvn install时,maven默认会先执行verify阶段再执行install阶段? -
我的目标是 1) 运行 'mvn install' 来做所有事情,除了运行集成测试; 2) 运行 'mvn xxxxxx' 运行集成测试。
标签: maven testing automated-tests integration-testing