我在测试中使用@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-stram for thread1,2-nd param for thread 2,3-rd for thread 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>
这不起作用。 我的测试仅执行每个线程的第三个参数。 我如何使用maven将3个不同的参数传递给3个并行线程的TestNg?
答案 0 :(得分:0)
您可能想尝试在一个<DeviceModel>
代码中传递所有参数,并在@DataProvider
或@Factory
内解析它
有关详细信息,请参阅文档enter link description here
答案 1 :(得分: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>