JUnit:选择性地不运行一些测试用例作为默认值

时间:2014-04-08 14:48:31

标签: maven junit

是否有可能在构建时默认运行某些JUnit测试用例?

目标:

我们有两种测试用例:

  • “单元测试”
  • “集成测试”(测试直到数据库的完整路径)

在构建服务器上,我们不希望运行集成测试(DB不可用等)。但是,应该运行单元测试。目前,我们通过将集成测试保留在CM中并由开发人员根据需要启用来实现这一目标。

这是一项繁琐的安排。我们想要的是默认情况下,告诉maven只运行单元测试。我可以采用的一种方法是将集成测试保存在一个单独的包中,该包不是默认构建的一部分。但是,这会使测试目标代码和测试用例在物理上分开,并且通常会随着时间的推移而不同步。

有什么好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

您可以在pom中使用不同的配置文件。默认情况下,您排除集成测试。

<plugin>
     <artifactId>maven-surefire-plugin</artifactId>
     <groupId>org.apache.maven.plugins</groupId>
     <version>2.9</version>
     <configuration>
         <skip>false</skip>
         <useFile>false</useFile>
         <argLine>-Xms1024m -Xmx1024m -XX:MaxPermSize=512m</argLine>
         <excludes>
             <exclude>**/*IntegrationTest.java</exclude>
         </excludes>
     </configuration>
</plugin>

<profiles>
    <profile>
        <id>integration-test-builder</id>
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <groupId>org.apache.maven.plugins</groupId>
                    <version>2.9</version>
                    <configuration>
                        <skip>false</skip>
                        <useFile>false</useFile>
                        <argLine>-Xms1024m -Xmx1024m -XX:MaxPermSize=512m</argLine>
                        <excludes>
                            <exclude>none</exclude>
                        </excludes>
                        <includes>
                            <include>**/*IntegrationTest.java</include>
                        </includes>
                    </configuration>
                    <executions>
                        <execution>
                            <id>integration-tests</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>    
</profiles>

要运行integrationstest,您可以这么简单:mvn clean integration-test -P integration-test-builder