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

时间:2017-02-13 10:36:50

标签: java xml maven spring-boot maven-failsafe-plugin

我有两个测试套件,分别是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次。如何解决这个问题呢? 谢谢!

2 个答案:

答案 0 :(得分:0)

将配置部分移动到依赖关系配置并删除执行(因为较新版本的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>

答案 1 :(得分:0)

我发现解决方案稍有改变。在 failsafe_version 中将版本更改为 2.13 并将阶段更改为集成测试完成了这项工作。 这是我更新的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> 

感谢您的所有回复!