首页 文章

与Maven并行运行TestNG测试并使用Maven传递参数

提问于
浏览
1

我在测试中使用 @Parameters("DeviceModel") 我通过testNG.xml文件运行并行3个线程 . 在TestNG.XML中,我传递了3个参数 .

1-st parameter: <parameter name="DeviceModel" value="devicemodel1">
2-nd parameter: <parameter name="DeviceModel" value="devicemodel2">
3-rd parameter: <parameter name="DeviceModel" value="devicemodel3">

当testNG.xml正在执行时,它需要1-st参数用于thread1,2-nd参数用于线程2,3-rd用于线程3.因此,我得到3个并行线程,每个线程具有不同的参数 .

现在我希望通过Maven SureFire插件与TestNG进行并行测试 . 我在pom.xml中传递以下值

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<parallel>tests</parallel>
<threadCount>3</threadCount>
<includes>
<include>packageName/*Test.java</include>
</includes>
<systemPropertyVariables>
<DeviceModel>devicemodel1</DeviceModel>
<DeviceModel>devicemodel1</DeviceModel>
<DeviceModel>devicemodel1</DeviceModel>
</systemPropertyVariables>
</configuration>

这不起作用 . 我的测试仅执行每个线程的第三个参数 . 我怎样才能将3个不同的参数传递给TestNg 3个并行线程与maven?

2 回答

  • 0

    可以继续使用Maven的TestNG.xml .

    在此示例中,套件文件TestNG.xml位于src / test / resources子文件夹中:

    <build>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/TestNG.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • 0

    您可能想尝试在一个 <DeviceModel> 标记中传递所有参数并在 @DataProvider@Factory 中解析它 . 有关详细信息,请参阅文档enter link description here

相关问题