[英]How to make integration tests and unit tests run separately through maven?
請參閱以下鏈接 - GitHub討論如何分離集成測試和單元測試
結果,我嘗試了這個 -
<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
,也會使用sure-fire插件。
必需結果:運行mvn integration-test
,不應運行單元測試。
以下三張圖片用於mvn verify
整合測試:
單元測試:
下圖是我運行mvn test
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
在maven-failsafe-plugin
定義的目標verify
和integration-test
運行與surefire的集成測試用例。 這里的事情按預期工作,並按照指南提供。 請參閱此鏈接以獲取更多詳細信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.