我有一个 TestNG @Factory 类,一个创建驱动程序的基类和两个包含多个 @Test 方法来运行测试的测试类。给定我下面的@Factory 课程。
public class SampleFactory {
@Factory(dataProvider="DeviceDetails")
public synchronized Object[] factoryMethod(String deviceID){
return new Object[] {new IndTest(deviceID),new IndTestTwo(deviceID)};
}
@DataProvider(name="DeviceDetails",parallel=true)
public Object[][] passDeviceID(){
return new Object[][] {{"02157DF2DA5A1C09"},{"D5588B67"}};
}
}
IndTest
IndTest2
是两个测试类。它们扩展基类并调用基类构造函数来创建驱动程序。对于特定的 deviceID,在特定时间只能使用驱动程序的一个实例。
我面临的问题是 IndTest 和 IndTest2 都在同时运行,测试尝试同时在特定设备上运行不同的测试。我要求首先调用 IndTest 类并在设备 1 和设备 2 上运行该类内的测试,然后移动到 IndTest2 并执行相同类型的执行。下面是我目前使用的 TestNG xml。
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test_Suite" skipfailedinvocationcounts="false" junit="false" parallel="classes"
data-provider-thread-count="100" annotations="JDK" group-by-instances="true"/>
等待你的想法:)