mvn integration-test vs mvn failsafe:integration-test

时间:2012-08-27 05:55:11

标签: java maven maven-failsafe-plugin

当我使用maven failsafe插件运行集成测试时遇到了问题。 我有两个类,一个是TestUnitTest.java,另一个是TestIntegrationIT.java。 在pom.xml中,我配置如下:

<plugin>                
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>**/*IT.java</exclude>
        </excludes>
    </configuration>
    <executions>
        <execution>
            <id>unit-tests</id>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <configuration>
        <includes>
            <include>**/*IT.java</include>
        </includes>
    </configuration>                    
    <executions>
        <execution>
            <id>integration-test</id>
            <phase>integration-test</phase>
            <goals>
                <goal>integration-test</goal>                           
            </goals>
        </execution>
    </executions>
</plugin>

当我运行mvn:integration-test时,将执行两个测试,当我运行mvn failsafe:integration-test然后只运行“TestIntegrationIT”。为什么输出不同的结果?

1 个答案:

答案 0 :(得分:1)

maven-surefire-plugin的包含被定义为* Test,* TestCase,而maven-failsafe-plugin是用 IT.java,IT .java或* ITCase.java定义的。因此,您不需要为maven-surefire-plugin或maven-failsafe-plugin定义包含使用默认值。如果您不想命名集成测试,只需将其命名为NameIT.java,而单元测试可以命名为NameTest.java。 要运行单元测试和/或集成测试,您应该使用lifecylce:

mvn package

将运行单元测试,而

mvn verify

将运行单元测试和集成测试。