Maven:如何为testng设置线程数
Maven: how to set thread count for testng
我正在使用 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 文件中添加线程数吗??
- 您可能需要从 XML 文件中的套件定义中删除
thread-count
,因为它将覆盖 Maven Surefire 传递给 TestNG 的任何 -threadcount
参数(参见 Running TestNG). 下的命令行参数
从本地测试看来 threadCount
and suiteXmlFiles
不兼容,suiteXmlFiles
的 Maven Surefire 插件文档指出:
Note that suiteXmlFiles
is incompatible with several other parameters of this plugin, like includes/excludes
.
我认为 threadCount
是另一个不兼容的 "other parameters"。
TestNG XML 文件中可用的一些相同选项在配置 Maven Surefire 插件时也可用,因此看起来您必须 "port" 您的 TestNG XML 到 Maven Surefire 插件配置 XML.
在我的本地测试中,我发现我可以简单地省略 suiteXmlFiles
和找到的插件以及 运行 我使用指定 threadCount
的测试。根据您的 TestNG XML,您的解决方案可能需要更多的工作。
我没有尝试这样做,但是这个配置应该可以。
我不确定,但要使用它,您应该使用 2.19+ 版本的 surefire 插件。我还建议在使用 TestNG 时不要在部分中使用 surefire-specific 元素名称(如 、、 等)。更好的选择是使用具有一组 <属性> 值的 部分。这些值将传递给 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>
我正在使用 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 文件中添加线程数吗??
- 您可能需要从 XML 文件中的套件定义中删除
thread-count
,因为它将覆盖 Maven Surefire 传递给 TestNG 的任何-threadcount
参数(参见 Running TestNG). 下的命令行参数
从本地测试看来
threadCount
andsuiteXmlFiles
不兼容,suiteXmlFiles
的 Maven Surefire 插件文档指出:Note that
suiteXmlFiles
is incompatible with several other parameters of this plugin, likeincludes/excludes
.我认为
threadCount
是另一个不兼容的 "other parameters"。TestNG XML 文件中可用的一些相同选项在配置 Maven Surefire 插件时也可用,因此看起来您必须 "port" 您的 TestNG XML 到 Maven Surefire 插件配置 XML.
在我的本地测试中,我发现我可以简单地省略
suiteXmlFiles
和找到的插件以及 运行 我使用指定threadCount
的测试。根据您的 TestNG XML,您的解决方案可能需要更多的工作。
我没有尝试这样做,但是这个配置应该可以。
我不确定,但要使用它,您应该使用 2.19+ 版本的 surefire 插件。我还建议在使用 TestNG 时不要在部分中使用 surefire-specific 元素名称(如
<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>