我正在为我的移动网站编写自动化代码。
的Class1: -
public class Sample{
@BeforeTest
public void createUser(){
// code to create user
}
@Test
public void verifyUser(){
// code to verify user
}
@AfterTest
public void deleteUser(){
// code to delete user
}
}
赞Class1
。我有不同的类,例如Class2
,Class3
,Class4
。
testing.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1">
<test name="Regression1" parallel="false" preserve-order="true">
<classes>
<class name="Class1"/>
<class name="Class2"/>
<class name="Class3"/>
<class name="Class4"/>
</classes>
</test>
</suite>
要运行的命令: -
mvn -Dtests=testing.xml test
当我在命令上方运行时,@BeforeTest
Class1
,Class2
,Class3
,Class4
首先被调用。这意味着在运行任何测试之前首先创建了4个用户。然后只有Class1
测试正在运行Class2
,依此类推。来自所有类的Atlast @AfterTest
正在运行(删除所有用户atlast)。
我不想要这种情况。
我需要以下方式来运行我的每个测试: -
我需要首先执行Class1
,然后Class2
执行,依此类推。
我必须做的testng注释有什么变化吗?
答案 0 :(得分:2)
使用BeforeMethod
代替BeforeTest
。 BeforeTest
方法将在<test>
中的testng.xml
标记之前运行,而不是在@Test
方法之前运行。
当然,也可以使用AfterMethod
代替AfterTest
。
检查我的回答是否有其他类似问题:Difference between BeforeClass and BeforeTest in TestNG