2016-08-23 86 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插件并指定您想要包含的测试。

相关问题