并行运行testNG套件

问题描述 投票:1回答:1

我使用gradle + testNG

测试动态生成集XML文件

因此,有一个文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite thread-count="2" name="Suite" parallel="instances">
    <suite-files>
        <suite-file path="test-suite.xml"/>
        <suite-file path="test2-suite.xml"/>
    </suite-files>
</suite>

如何启动数据套件的并行执行?

文档中有一个使用maven和-suitethpoolsize的例子。

https:/testng.orgdocdocumentation-main.html#parallel-suites。

不适合gradle

我在互联网上搜索了一下,没有找到有效的解决方法

java testing gradle automated-tests testng
1个回答
0
投票

你可以考虑使用一个自定义的运行器。创建一个新的测试类,然后创建一个TestNG的实例,并将你的套件送入其中,例如

class TestExecutor {
    @Test
    public runTests() {
         List<String> suites = ... // Set here your xml paths

         TestNG testNg = new TestNG();
         testNg.setSuiteThreadPoolSize(suites.size());
         testNg.setTestSuites(suites);
         // you may also register your listeners here, e.g.:
         // testNg.addListener(new MyITestListener());
         testNg.run();
    }
}

最后,将这个唯一的测试类包含在你的... ... gradle.build 文件。

test {
    useTestNG() {
    }
    include("**/TestExecutor.class")
}

现在Gradle会运行你的单项测试 它将会并行地触发你所有的测试套件。

© www.soinside.com 2019 - 2024. All rights reserved.