Data Provider と並行して testng テストを実行しようとしています。Data Provider の各入力は、新しいテストになります。
並列実行のために、属性 parallel をデータ プロバイダーに追加し、threadPoolSize を Test に追加しました。私はEclipse実行構成でコマンドライン引数を渡しています -parallel methods -dataproviderthreadcount 2
以下は、これまでに試したコードスニペットです
public class DemoTest {
@Test(dataProvider = "dp",invocationCount=1,threadPoolSize=2)
public void f(Integer n, String s) {
System.out.println("id:"+Thread.currentThread().getId()+" n:"+n+" s:"+s);
}
@BeforeMethod
public void beforeMethod() {
}
@AfterMethod
public void afterMethod() {
}
@DataProvider(parallel=true)
public Object[][] dp() {
return new Object[][] {
new Object[] { 1, "a" },
new Object[] { 2, "b" },
new Object[] { 3, "c" },
new Object[] { 4, "d" },
new Object[] { 5, "e" },
new Object[] { 6, "f" },
new Object[] { 7, "g" },
new Object[] { 8, "h" },
new Object[] { 9, "i" },
new Object[] { 10,"j" }
};
}
}
出力:
id:10 n:1 s:a
id:14 n:5 s:e
id:17 n:8 s:h
id:13 n:4 s:d
id:11 n:2 s:b
id:15 n:6 s:f
id:12 n:3 s:c
id:19 n:10 s:j
id:18 n:9 s:i
id:16 n:7 s:g
入力ごとに新しいスレッドが作成されますが、作成するスレッドは 2 つだけにしたいです。