TestNG中的setTestClasses不能与setParallel一起使用吗?

时间:2018-08-21 14:59:49

标签: java maven testng maven-surefire-plugin

所以我想让我的testNG类并行运行。我还使用这样的工厂来生成这些testNG类:

    @Factory
    public Object[] makeTests() {
        Object[] tests = new Object[2];
        for (int i = 0; i < 2; i++) {
            tests[i] = new SampleTestClass(i);
        }
        return tests;
    }

    public static void main(String[] args) {
        TestNG tng = new TestNG();

        tng.setTestClasses(new Class[] {TestEngine.class});
        tng.run();

    }

我想并行运行这些测试类。但是,当我尝试使用tng.setParallel(XmlSuite.ParallelMode.CLASSES)时,它不起作用。当我指定时,maven surefire插件也没有:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
                <configuration>
                    <parallel>classes</parallel>
                    <threadCount>10</threadCount>
                </configuration>
            </plugin>
        </plugins>
    </build>

这种设置测试类的方式是否有并行化的另一种方式?

编辑:找到解决方案,它应该是ParallelMode.INSTANCES。

1 个答案:

答案 0 :(得分:0)

我对Maven Surefire也有类似的问题。唯一适用于并行执行的是:

<property>
    <name>suitethreadpoolsize</name>
    <value>16</value>
</property>

属性,maven-surefire属性的一部分。