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

Is it mandatory to specify maven-failsafe-plugin to run integration tests?

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

  1. 是否必须指定 maven-failsafe-plugin 到 运行 集成测试?
  2. 为什么 mvn verify 不能像 mvn test 执行单元测试那样执行集成测试?
  3. 没有这个插件可以执行集成测试吗?

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

完全同意dunni的回答。再补充几点。

  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 配置为 运行 没有故障安全插件的集成测试。