我正在使用testng并行运行测试。 Xml文件包含线程计数参数。
<suite name="Lalala" parallel="tests" thread-count="3" preserve-order="true">
但我想从POM文件中设置线程计数值。我试过了
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.3.1</version>
</dependency>
和
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<configuration>
<parallel>classes</parallel>
<threadCount>10</threadCount>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/${suite}.xml</suiteXmlFile>
</suiteXmlFiles>
<workingDirectory>target/</workingDirectory>
</configuration>
</plugin>
但是线程数仍然等于1
有没有办法从Pom文件中添加线程数?
答案 0 :(得分:1)
thread-count
,因为它将覆盖Maven Surefire传递给TestNG的任何-threadcount
参数(请参阅命令行参数 Running TestNG)下。从本地测试看,threadCount
和suiteXmlFiles
似乎不兼容,而suiteXmlFiles
的Maven Surefire插件文档中显示的是:
请注意,
suiteXmlFiles
与此插件的其他几个参数不兼容,例如includes/excludes
。
我认为threadCount
是另一个不兼容的&#34;其他参数&#34;。
在配置Maven Surefire插件时,TestNG XML文件中提供的一些相同选项也可用,因此看起来您将需要&#34; port&#34;您的TestNG XML到Maven Surefire插件配置XML。
在我的本地测试中,我发现我可以简单地省略suiteXmlFiles
并找到插件并使用指定的threadCount
运行我的测试。根据您的TestNG XML,您的解决方案可能需要更多的工作。
答案 1 :(得分:0)
我不尝试这样做,但这种配置应该有效。 我不确定,但要使用它,你应该使用版本2.19+的surefire插件。另外,我建议您在使用TestNG时不要在部分中使用surefire特定的元素名称(例如&lt; parallel&gt;,&lt; threadCount&gt;,&lt; groups&gt;等)。更好的选择是使用&lt; properties&gt;带有&lt; property&gt;的部分值。这些值将传递给testNG命令行。 TestNG documentation
中明确描述了此类属性的行为<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.19</version>
</dependency>
</dependencies>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>suites/my-suite.xml</suiteXmlFile>
</suiteXmlFiles>
<!-- DONT USE THIS
<parallel>methods</parallel>
<threadCount>5</threadCount>
-->
<properties>
<property>
<name>parallel</name>
<value>methods</value>
</property>
<property>
<name>threadcount</name>
<value>5</value>
</property>
<property>
<name>dataproviderthreadcount</name>
<value>3</value>
</property>
</properties>
</plugin>