Java 在testng中使用@BeforeTest注释时出现问题
我正在为我的移动站点编写自动化代码 类别1:-Java 在testng中使用@BeforeTest注释时出现问题,java,annotations,testng,Java,Annotations,Testng,我正在为我的移动站点编写自动化代码 类别1:- public class Sample{ @BeforeTest public void createUser(){ // code to create user } @Test public void verifyUser(){ // code to verify user } @AfterTest public void deleteUser(){
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>
当我运行上述命令时,首先调用Class1
、Class2
、Class3
、Class4
中的@BeforeTest
。这意味着在运行任何测试之前先创建4个用户。然后只有Class1
测试正在运行,然后Class2
依此类推。所有类的Atlast@Afterest
正在运行(删除所有用户Atlast)
我不希望出现这种情况
我需要以下方法来运行我的每个测试:-
Class1
,然后执行Class2
,依此类推
testng的注释有什么变化吗?使用
beforethod
而不是BeforeTest
。BeforeTest
方法将在testng.xml
中的
标记之前运行,而不是在@Test
方法之前运行。
当然,也要使用AfterMethod
而不是AfterTest
请检查我的回答,了解另一个类似的问题:我在一门课上有两种测试方法。如果我使用before方法,则每次测试都会调用它。我不需要它。我希望调用BeforeMethod或BeforeTest而不考虑所有测试方法,并将AfterMethod或AfterTest称为所有测试方法的结束。如果测试类中有两个测试方法,则使用
@BeforeClass
和@AfterClass
。因此顺序是:beforeClass()、testMethod1()、testMethod2()、afterClass()。
mvn -Dtests=testing.xml test