Maven surefire 插件不止一次触发测试套件

Maven surefire plugin triggers the testsuite more than once

我有两个测试套件 A.xml 和 B.xml。 这是其中之一的示例。

<!-- URL Details -->
<parameter name="applicationHostname" value="localhost" />
<parameter name="applicationProtocol" value="http" />
<parameter name="applicationPort" value="8080" />

<parameter name="testDelay" value="0" />

<test verbose="2" name="TestSuiteA" annotations="JDK"
    preserve-order="true">
    <parameter name="testDataSource" value="Data.json" />
    <classes>
        <class name="package.SuiteConfiguration" />
        <class
            name="package.functionalTestAppStart.AppStarter" />
    </classes>
</test>

这里AppStarter是被触发的springboot应用

这是我对应的 POM.xml

片段
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version>
                <executions>
                    <execution>
                    <id>IT</id>
                        <phase>test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                <skip>false</skip>
                    <suiteXmlFiles>
                               <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
                </execution>
                    <execution>
                    <id>verify</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                </execution>
                </executions>
        </plugin>

这里 FT_TEST_SUITE.xml 是父测试套件,它只触发其他两个测试套件。

    <suite-files>
      <suite-file path="TESTSUITE_A.xml" />
      <suite-file path="TESTSUITE_B.xml" />
    </suite-files>

当我构建我的 Maven 项目时 "mvn clean install",测试套件被触发了 3 次。如何解决这个问题呢? 谢谢!

将配置部分移至依赖配置并完全删除执行(因为 Spring Boot 的较新版本已经定义了此类默认设置):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile>
        </suiteXmlFiles>
    </configuration>
</plugin>

我发现 解决方案 稍作改动。在 failsafe_version 中将版本更改为 2.13 并将 phase 更改为 integration-test 完成了任务。 这是我更新的 POM.xml 片段。

    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.13</version>
                <executions>
                    <execution>
                    <id>IT</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                 <configuration>
            <suiteXmlFiles> 
        <suiteXmlFile>src/test/resources/suites/FT_TEST_SUITE.xml</suiteXmlFile>
            </suiteXmlFiles>
            </configuration>
                </execution>
                    <execution>
                    <id>verify</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                </execution>
                </executions>
        </plugin> 

感谢大家的回复!