簡體   English   中英

無法理解Spring Boot如何管理與Maven的集成測試。 是否使用故障安全插件?

[英]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文檔中提到的故障安全插件的原因是,他們不希望人們使用它。

請參閱以下教程。 這很簡單,但這是一個很好的起點:

Baeldung Spring Boot測試教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM