Gradle 并行运行 TestNG 套件

Posted

技术标签:

【中文标题】Gradle 并行运行 TestNG 套件【英文标题】:Gradle run TestNG suites in parallel 【发布时间】:2022-01-23 22:00:48 【问题描述】:

我有一组定义测试套件的 TestNG xml 文件。我试图弄清楚如何并行运行所有套件但使用 gradle。本质上是在寻找相当于运行java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml。另请注意,在套件中,测试也在那里并行运行。这可以吗?

【问题讨论】:

【参考方案1】:

你可以试试这个(假设 TestNG xmls 放在src/test/resources):

dependencies 
    // your other dependencies
    testImplementation 'org.testng:testng:7.4.0'


test 
    useTestNG() 
        scanForTestClasses = false
        maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
        suites ('src/test/resources/testng1.xml','src/test/resources/testng2.xml', 'src/test/resources/testng3.xml')
    

它将基于 testng xml 配置在并行线程中运行所有测试,但总并发线程数受maxParallelForks 限制。

请注意,所有测试仍然在单独的线程中执行,而不是在单独的进程中,例如所有静态变量等都将被共享。至少我在实验中发现了这种行为。

【讨论】:

以上是关于Gradle 并行运行 TestNG 套件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 TestNG 中并行运行测试用例?

Gradle 任务检查是不是定义了属性

TestNG 可以运行多个套件吗?

在 aws-device 场中运行特定的 TestNG testng.xml 套件文件

Maven 故障安全插件不运行 testNG XML 套件

如何在单线程中运行 ScalaTest 套件?