TestNG Gradle 如何 运行 多个套件并行

TestNG Gradle how to run multiple suites in parallel

我想知道是否有办法 运行 多个测试套件与 TestNG + Gradle.

并行

我有一个主套件文件,其中包含 运行 的其他单独套件,但它只会按顺序 运行 套件。 我目前 运行 在各个套件中并行测试,但我还需要同时将多个套件设置为 运行。

示例主套件文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="debug suite">
  <suite-files>
    <suite-file path="debug-test.xml"></suite-file>
    <suite-file path="debug-test.xml"></suite-file>
    <suite-file path="debug-test.xml"></suite-file>
    <suite-file path="debug-test.xml"></suite-file>
    <suite-file path="debug-test.xml"></suite-file>
  </suite-files>
</suite>

包含测试的示例套件文件:

<suite name="Debug suite" verbose="1" parallel="tests" thread-count="2" data-provider-thread-count="1">
    <test name="example test 1">
        <classes>
            <class name="ExampleTest"/>
        </classes>
    </test>
    <test name="example test 1">
        <classes>
            <class name="ExampleTest"/>
        </classes>
    </test>
</suite>

我 运行 我的测试在 build.gradle:

中使用这个 gradle 任务
ask runSuite(type: Test, dependsOn: ['clean', 'classes']) {
    def suite = System.properties["suite"]

    useTestNG() {
        suites "src/test/suite/" + suite
    }
    testLogging.showStandardStreams = true
}

我看到 testNG 有一个参数“-suitethreadpoolsize”,它可以实现我想要的,但在使用 Gradle 时不受支持。 Testng + Gradle 是否支持这种行为?

解决了以编程方式从主套件中的所有子套件中提取测试并将它们放入一个套件中,然后 运行 那些并行。

不理想,但适合我的用例。