是否必须指定maven-failsafe-plugin来运行集成测试?

时间:2015-06-12 18:50:44

标签: maven maven-plugin maven-failsafe-plugin

对于maven-failsafe-plugin这个非常基本的问题感到抱歉,但我对maven不是很熟悉。

  1. 是否必须指定mvn verify才能运行集成测试?
  2. 为什么mvn test执行集成测试就像Logger.log('match result = '+res);// when a match is found, res is equal to the matching string if (res!=null) { // otherwise it returns null 执行单元测试一样?
  3. 没有这个插件可以执行集成测试吗?

2 个答案:

答案 0 :(得分:4)

mvn test执行单元测试,因为Maven具有从testsurefire:test的默认绑定,这意味着,如果您执行阶段test,Maven将调用surefire目标为test的插件。但是,集成测试或验证阶段没有默认绑定,因此您必须通过指定failsafe插件自行提供。

答案 1 :(得分:1)

完全同意邓尼的回答。增加几点。

  1. 使用maven-failsafe-plugin运行集成测试是一种好习惯。由于Failsafe插件旨在运行集成测试,而Surefire插件旨在运行单元测试。
  2. dunni正确回答了这个问题。
    添加其他信息,要使用Failsafe插件,您需要将以下配置添加到项目pom.xml中:

    <build>
        <plugins>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>${maven-failsafe-plugin-version}</version>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>verify</id>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    
    1. 虽然这不是一个好习惯,但您可以配置maven-surefire-plugin以在没有failsafe-plugin的情况下运行集成测试。