import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestParamel {
//这种方式会导致执行9此,invocationCount表示方法执行三次,每次执行都会读取数据提供者,数据提供者返回了3个,所以最终执行了3*3=9次
@Test(dataProvider = "dp", threadPoolSize=3,invocationCount=3)
public void f(Integer n, String s) {
System.out.println(Thread.currentThread().getId()+"--"+ n+"***"+s);
}
@DataProvider
public Object[][] dp() {
return new Object[][] {
new Object[] { 1, "a" },
new Object[] { 2, "b" },
new Object[] { 3, "c" },
};
}
@BeforeClass
public void beforeClass() {
}
}
这种会导致执行9次方法
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class TestParamel {
private final List<Object[]> data= Collections.synchronizedList(new ArrayList<Object[]>());
// 这种方式会导致执行3次,invocationCount表示方法执行三次,每次执行都会读取数据提供者,数据提供者每次返回一个,倒序返回值
@Test(dataProvider = "dp", threadPoolSize = 3, invocationCount = 3)
public void f(Integer n, String s) {
System.out.println(Thread.currentThread().getId() + "--" + n + "***" + s);
}
@DataProvider
public Object[][] dp() {
System.out.println(data.size());
Object[] var = data.remove(data.size()-1);
System.out.println(ToStringBuilder.reflectionToString(var));
return new Object[][] {var};
}
@BeforeClass
public void beforeClass() {
data.add(new Object[] { 1, "a" });
data.add(new Object[] { 2, "b" });
data.add(new Object[] { 3, "c" });
}
}