Java 如何使用数据提供程序在testNG上并行运行测试?

Java 如何使用数据提供程序在testNG上并行运行测试?,java,multithreading,parallel-processing,testng,testng-dataprovider,Java,Multithreading,Parallel Processing,Testng,Testng Dataprovider,我想使用数据提供程序在testng上并行运行许多测试。我想要一个线程运行一个测试,下一个线程运行下一个测试。 我该怎么做 这是我试过的,但没用 @数据提供者(name=“testList”,parallel=true) 在xml中: suite name=“knowledgetest”verbose=“5”configfailurepolicy=“continue” 数据提供程序thread count=“10”parallel=“methods”thread count=“5”可能您没有将数据

我想使用数据提供程序在testng上并行运行许多测试。我想要一个线程运行一个测试,下一个线程运行下一个测试。 我该怎么做

这是我试过的,但没用

@数据提供者(name=“testList”,parallel=true)

在xml中:

suite name=“knowledgetest”verbose=“5”configfailurepolicy=“continue”
数据提供程序thread count=“10”parallel=“methods”thread count=“5”

可能您没有将
数据提供程序传递给构造函数

为了并行运行测试,您需要执行以下操作:

TestNG配置:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="TestNG-OddCheckerTest" verbose="1" parallel="methods" thread-count="10" data-provider-thread-count="10">
    <test name="OddCheckerTest">
        <classes>
            <class name="com.mypackage.test.OddCheckerTest" />
        </classes>
    </test>
</suite>
输出:

package com.mypackage.test;

import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Factory;
import org.testng.annotations.Test;

@Test
public class OddCheckerTest {

    private long number;

    @Factory(dataProvider = "numberList")
    public OddCheckerTest(long number) {
        this.number = number;
    }

    @DataProvider(name = "numberList", parallel = true)
    public static Object[][] getNumber() {
        return new Object[][]{
                {1}, {3}, {5}, {77}, {111}, {123}, {287}, {305}, {505}, {607}, {709}, {803}, {805}
        };
    }

    @Test
    public void testForOdd() throws InterruptedException {
        System.out.println(Thread.currentThread().getName() +  ": checking that [ " + number + " ] it's odd!");
        Thread.sleep(1000);
        Assert.assertTrue(number % 2 == 1, "Number [" + number + "] is not odd!");
    }
}