TestNG - 如何 运行 在每个并行 运行 的 class 中的所有测试之前设置一次
TestNG - How to run setup once before all tests in a class for each parallel run
我正在尝试查看是否可以为每个实例化的并行 class 设置一次 运行。
如果我有以下测试class,因为DataFactory(CSV有2行数据,每个测试一个),两个测试并行开始
是否可以为 TestFu class 的每个实例获取一次 testSetup() 运行。 BeforeClass 似乎在两个并行测试实例之前 运行 它一次。
测试 XML
<suite name="SomeTest" parallel="none" thread-count="20" verbose="2">
<test name="Graph+APITests" parallel="instances" thread-count="5">
<classes>
<class name="TestFu" />
</classes>
</test>
</suite>
测试Class
public class TestFu {
String var1;
@Factory(dataProvider = "testStuff")
public TestFu(String var1, String var2) {
this.var1 = var1;
this.var2 = var2;
}
@DataProvider(name = "testStuff")
public static Object[][] stuff() {
return methodThatLoadsVarsFromCSV;
}
@BeforeClass
public void testSetup() {
System.out.println("Doing setup");
}
@Test
public void testOne() {
System.out.println("Test 1 " + this.var1);
}
@Test
public void testTwo() {
System.out.println("Test 2 " + this.var2);
}
}
像这样使用 static
标志:
static boolean initialized = false;
@BeforeClass
public void testSetup() {
if (!initialized) {
initialized = true;
System.out.println("Doing setup");
}
}
我正在尝试查看是否可以为每个实例化的并行 class 设置一次 运行。
如果我有以下测试class,因为DataFactory(CSV有2行数据,每个测试一个),两个测试并行开始
是否可以为 TestFu class 的每个实例获取一次 testSetup() 运行。 BeforeClass 似乎在两个并行测试实例之前 运行 它一次。
测试 XML
<suite name="SomeTest" parallel="none" thread-count="20" verbose="2">
<test name="Graph+APITests" parallel="instances" thread-count="5">
<classes>
<class name="TestFu" />
</classes>
</test>
</suite>
测试Class
public class TestFu {
String var1;
@Factory(dataProvider = "testStuff")
public TestFu(String var1, String var2) {
this.var1 = var1;
this.var2 = var2;
}
@DataProvider(name = "testStuff")
public static Object[][] stuff() {
return methodThatLoadsVarsFromCSV;
}
@BeforeClass
public void testSetup() {
System.out.println("Doing setup");
}
@Test
public void testOne() {
System.out.println("Test 1 " + this.var1);
}
@Test
public void testTwo() {
System.out.println("Test 2 " + this.var2);
}
}
像这样使用 static
标志:
static boolean initialized = false;
@BeforeClass
public void testSetup() {
if (!initialized) {
initialized = true;
System.out.println("Doing setup");
}
}