<?xml version="1.0" encoding="UTF-8"?>
<suite name="Parallel test runs" parallel="tests" thread-count="2">
<test name="ModuleTest">
<classes>
<class name="com.qa.testcases.AccountTest" ></class>
<class name="com.qa.testcases.DeviceTest" ></class>
</classes>
</test>
<test name="UserTest">
<classes>
<class name="com.qa.testcases.UserTest" ></class>
</classes>
</test>
</suite>
我想在 顺序 和 ModuleTest <中运行 AccountTest 和设备测试 / em> 和 UserTest 并行。 并行执行正在发生,但 AccountTest 和设备测试未在 顺序 中运行而是他们开始在并行中运行。有没有办法让它们以顺序运行?
我有两个测试类如下
1.AccountTest
public class AccountTest {
@BeforeTest
public void setUp() {
}
@Test(Priority=0)
public void createAccount(){
}
@Test(Priority=1)
public void editAccount(){
}
@Test(Priority=2)
public void deleteAccount(){
}
@AfterTest
public void closeSession() {
}
}
2.DeviceTest
public class DeviceTest {
@BeforeTest
public void setUp() {
}
@Test(Priority=0)
public void createDevice(){
}
@Test(Priority=1)
public void editDevice(){
}
@Test(Priority=2)
public void deleteDevice(){
}
@AfterTest
public void closeSession() {
}
}
问题是AccountTest的第一个 @BeforeTest 方法执行而不是去AccountTest的 @Test(priority = 0), @BeforeTest DeviceTest执行的方法。我希望在转到DeviceTest之前先运行整个AccountTest类
答案 0 :(得分:0)
要实现此目的,您需要将@BeforeTest
和AccountTest
中的DeviceTest
注释更改为@BeforeClass
Per testng.org
@BeforeTest:在运行属于标记内的类的任何测试方法之前,将运行带注释的方法
@BeforeClass:在调用当前类中的第一个测试方法之前,将运行带注释的方法。
答案 1 :(得分:0)
要实现,您可以尝试使用一个xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Parallel test runs" parallel="tests" thread-count="2">
<test name="ModuleTest" parallel="false">
<classes>
<class name="com.qa.testcases.AccountTest" ></class>
<class name="com.qa.testcases.DeviceTest" ></class>
</classes>
</test>
<test name="UserTest" parallel="false">
<classes>
<class name="com.qa.testcases.UserTest" ></class>
</classes>
</test>
</suite>