2016-08-23 87 views
0

我想使用Maven的Spring Boot測試集成功能。當我運行的下一個命令我看到它不工作如我所料:Maven-failsafe-plugin:skipTests配置不適用於Spring Boot 1.4集成測試

mvn clean install -DskipIntegrationTests=true 

它開始運行集成測試,但應該跳過他們。 我的問題是:

  1. 我該如何控制集成測試執行與maven?
  2. 我真的需要一個maven-failsafe插件嗎?

注:我使用的彈簧引導1.4.0.RELEASE 我POM:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>integration-test</id> 
        <goals> 
         <goal>integration-test</goal> 
        </goals> 
        <configuration> 
         <skipTests>${skipIntegrationTests}</skipTests> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 

我的集成測試:

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) 
@ActiveProfiles("development") 
@SqlGroup({ 
     @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:beforeTestRun.sql"), 
     @Sql(executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, scripts = "classpath:afterTestRun.sql") 
}) 
public class AdminTest { 

    @Autowired 
    private TestRestTemplate restTemplate; 

    @Test 
    public void get_all_admins() { 
     //TODO: code here 
    } 
} 
+1

與正常單元測試相比,您如何將該測試識別爲「集成測試」? –

+0

我不認同,可能是我錯過了一些maven插件配置 – Dimon

回答

1

你會想看看是怎麼故障安全插件的作品。特別是它如何識別測試,應該是集成測試階段的一部分:

http://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html

默認情況下,故障安全插件將自動包括所有測試 類與以下通配符模式:

**/IT*.java - 包括以「IT」開頭的所有子目錄和所有Java 文件名。 **/*IT.java - 包括其所有 子目錄和以「IT」結尾的所有Java文件名。 **/*ITCase.java - 包含所有子目錄以及以「ITCase」結尾的所有Java 文件名。

如果測試類不遵循 任何這些命名約定,則配置Failsafe插件並指定您想要包含的測試。

相關問題