无法使用maven运行多个testng xml文件

时间:2018-05-27 05:04:00

标签: maven testng pom.xml

我的项目有两个testNG xml文件,TestNG.xml和TestNG2.xml,两者都在根文件夹中。我已经制作了maven pom配置如下,但是当我运行时,文件" TestNG.xml"运行两次,TestNG2.xml保持不变。

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>
            <configuration>
                <suiteXmlFiles>
                    <file>TestNG2.xml</file>
                    <file>TestNG.xml</file>
                </suiteXmlFiles>
                <properties>
                    <property>
                        <name>suitethreadpoolsize</name>
                        <value>2</value>
                    </property>
                </properties>
            </configuration>
        </plugin>

我也试过从cmd运行但是再次只运行TestNG.xml两次。

  

mvn clean test -Dsurefire.suiteXmlFiles = TestNG2.xml,TestNG.xml

如何在同一次运行中运行这两个文件?

1 个答案:

答案 0 :(得分:0)

您没有使用正确的标签。您必须重构 suiteXmlFiles 块中的标记名。 pom文件应如下所示: -

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.21.0</version>
    <configuration>
        <suiteXmlFiles>
            <suiteXmlFile>TestNG2.xml</suiteXmlFile>
            <suiteXmlFile>TestNG.xml</suiteXmlFile>
        </suiteXmlFiles>
        <properties>
            <property>
                <name>suitethreadpoolsize</name>
                <value>2</value>
            </property>
        </properties>
    </configuration>
</plugin>

以防万一,如果您想从命令提示符动态运行不同的testNG.xml,则只需添加占位符变量 pom 文件。使用 -D 开关在命令提示符中传递此占位符的值。在这种情况下,pom文件应如下所示: -

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.21.0</version>
        <configuration>
            <suiteXmlFiles>
                <suiteXmlFile>${testSuite}.xml</suiteXmlFile>

            </suiteXmlFiles>
            <properties>
                <property>
                    <name>suitethreadpoolsize</name>
                    <value>2</value>
                </property>
            </properties>
        </configuration>
    </plugin>

传递测试套件的命令应为:

 mvn clean integration-test -DtestSuite=testNG