![](/img/trans.png)
[英]Maven-failsafe-plugin: skipTests configuration does not work for Spring Boot 1.4 integration tests
[英]Can't understand how Spring Boot manage integration tests with maven. Is it uses failsafe plugin or not?
我試圖不理解spring boot如何管理集成測試。
基本上,在任何具有集成測試的項目中,對此負責的插件都是maven 故障安全插件。 默認情況下,它會執行所有帶有后綴IT的類 。 例如: MyServiceIT.java
。
好吧,這是第一個問題。 我發現的大多數運行集成測試的Spring Boot示例(甚至在官方文檔或Spring博客中)都包含sufix Test 。 因此,我知道它們將由maven surefire插件運行,這是集成測試所不希望的。
但是混亂還沒有結束。
如果目標是運行集成測試,則spring boot maven插件文檔對故障保護插件一無所知 。 但是,如果您想跳過它們, 則故障安全插件會出現在文檔中。
現在,我在春季引導集成測試中使用帶有后綴IT的maven故障安全插件,在surefire上忽略了它們:
<plugin>
<!-- for unit tests -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*IT.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<!--for integrations tests-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skipITs>${skipITs}</skipITs>
</configuration>
</plugin>
但是另一位同事正在他的Spring Boot集成測試中(在另一個項目中)使用后綴Test
,並向我聲稱這是可以使用的正確后綴¹。
所以...我做錯了嗎? Spring Boot的這種“奇怪”設置如何用於集成測試?
¹。 聲納能夠獲得他的測試報道,而我的測試卻沒有。 我們正在使用Cobertura maven插件。 我認為這是因為他的測試是在surefire插件上運行的,但是在故障安全插件上,我需要在pom.xml以及聲納上進行額外的配置。
我認為您不需要使用故障安全插件。 spring boot docs告訴您使用的spring-boot-starter-parent引用包含任何人甚至可以考慮使用的所有內容,包括廚房水槽。
故障安全插件是進行集成測試的一種方法。 剩下一些手動配置。
但是,如果您使用的是Spring Boot,則應使用Spring Boot隨附的內置功能。 畢竟,這就是使用Spring Boot的全部重點。 他們為您做很多。 我懷疑您在Spring Boot文檔中看不到有關Spring文檔中提到的故障安全插件的原因是,他們不希望人們使用它。
請參閱以下教程。 這很簡單,但這是一個很好的起點:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.