Maven 命令 mvn clean verify 不会激活 Failsafe 到 运行 集成测试

Maven command mvn clean verify does not activate Failsafe to run integration-tests

我正在尝试使用 Maven 插件 Failsafe 运行 我在 src/it/java 目录中的集成测试。我正在使用 build-helper 插件来获取我的集成测试资源

我将故障安全插件设置为...

                 <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.22.0</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>

                    <configuration>
                        <printSummary>true</printSummary>
                    </configuration>
                </plugin>

使用我的 build-helper 插件设置,例如...

              <plugin>                                                             
                    <groupId>org.codehaus.mojo</groupId>                             
                    <artifactId>build-helper-maven-plugin</artifactId>               
                    <executions>                                                     
                        <execution>                                                  
                            <id>add-source</id>                                      
                            <phase>generate-sources</phase>                          
                            <goals>                                                  
                                <goal>add-test-source</goal>                         
                            </goals>                                                 
                            <configuration>                                          
                                <sources>                                            
                                    <source>
                                        <directory>src/it/java</directory>
                                    </source>                     
                                </sources>                                           
                            </configuration>                                         
                        </execution>                                                 
                        <execution>                                                  
                            <id>add-resource</id>                                    
                            <phase>generate-sources</phase>                          
                            <goals>                                                  
                                <goal>add-test-resource</goal>                       
                            </goals>                                                 
                            <configuration>                                          
                                <resources>                                          
                                    <resource>                                       
                                        <directory>src/it/resources</directory>      
                                    </resource>                                      
                                </resources>                                         
                            </configuration>                                         
                        </execution>                                                 
                    </executions>                                                    
                </plugin>

我还有 运行 我的单元测试的 Surefire 插件...

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
        </plugin>

当我执行 mvn clean verify 时,只有带有 surefire 和 failsafe 的单元测试 运行 没有 运行,当我尝试 mvn failsafe:verify 时没有测试 运行 ,当我尝试 mvn build-helper:add-test-sources failsafe:verify 时,它会抛出找不到测试源的错误。

[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source (default-cli) on project stkweb: The parameters 'sources' for goal org.codehaus.mojo:build-helper-maven-plugin:3.0.0:add-test-source are missing or invalid -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginParameterException

现在,如果我使用 surefire 稍微更改配置并将我的集成测试放在 src/test/java 文件夹中,它可以 运行 它们没问题。只是出于设计原因,我们希望将它们放在单独的目录中。

问题归结为使用 <pluginManagement> 标签。

<build>
  <pluginManagement>
    <plugins>
    </plugins>
  </pluginManagement>
</build>

当我删除 pluginManagement 标签时,它启动了 运行 FailSafe。

<build>
  <plugins>
  </plugins>
</build>

这也解决了我们在 Jacoco 中遇到的一个问题,之前我们只需要直接调用 Jacoco。