如何通过maven分别做集成测试和单元测试运行?
How to make integration tests and unit tests run separately through maven?
参考以下链接 -
GitHub discussion on how to separate Integration Tests and Unit Tests
结果,我尝试了这个--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/IT*.java</exclude>
<exclude>**/*IT.java</exclude>
<exclude>**/*ITCase.java</exclude>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>**/IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
这在某种程度上运作良好。意思是,surefire 不执行集成测试,而 Failsafe 不执行单元测试。
但是,当我运行、mvn verify
或mvn integration-test
时,也使用了万无一失的插件。
要求的结果:当 运行 mvn integration-test
时,单元测试不应 运行。
下面三张图是mvn verify
集成测试:
单元测试:
下图是我运行mvn test
maven-failsafe-plugin
中定义的 verify
和 integration-test
两个目标都运行集成测试用例。这里的事情正在按预期和提供的指南进行。请参考这个 link
更多详情:
Maven 的构建生命周期由几个阶段组成。当您调用一个特定的阶段时,该阶段之前的所有阶段都将首先执行。
参见 https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
有两种方法可以解决您想要的问题:
- 使用
-DskipTests
或 -Dmaven.test.skip=true
(https://www.mkyong.com/maven/how-to-skip-maven-unit-test/)
- 直接调用插件目标
mvn clean test-compile failsafe:integration-test
参考以下链接 - GitHub discussion on how to separate Integration Tests and Unit Tests
结果,我尝试了这个--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>**/*Tests.java</include>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/IT*.java</exclude>
<exclude>**/*IT.java</exclude>
<exclude>**/*ITCase.java</exclude>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<includes>
<include>**/IT*.java</include>
<include>**/*IT.java</include>
<include>**/*ITCase.java</include>
<include>**/*IntegrationTest.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
这在某种程度上运作良好。意思是,surefire 不执行集成测试,而 Failsafe 不执行单元测试。
但是,当我运行、mvn verify
或mvn integration-test
时,也使用了万无一失的插件。
要求的结果:当 运行 mvn integration-test
时,单元测试不应 运行。
下面三张图是mvn verify
集成测试:
单元测试:
下图是我运行mvn test
maven-failsafe-plugin
中定义的 verify
和 integration-test
两个目标都运行集成测试用例。这里的事情正在按预期和提供的指南进行。请参考这个 link
更多详情:
Maven 的构建生命周期由几个阶段组成。当您调用一个特定的阶段时,该阶段之前的所有阶段都将首先执行。 参见 https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
有两种方法可以解决您想要的问题:
- 使用
-DskipTests
或-Dmaven.test.skip=true
(https://www.mkyong.com/maven/how-to-skip-maven-unit-test/) - 直接调用插件目标
mvn clean test-compile failsafe:integration-test