在testng中使用@BeforeTest注释的问题
Issue in using @BeforeTest annotation in testng
我正在为我的移动网站编写自动化代码。
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
当我运行上面的命令时,Class1
、Class2
、Class3
、Class4
中的@BeforeTest
首先被调用。这意味着在 运行 任何测试之前首先创建 4 个用户。然后只有 Class1
测试是 运行ning 然后 Class2
等等。来自所有 类 的 Atlas @AfterTest
是 运行ning(删除所有用户 atlast)。
我不想要这种场景。
我需要以下方法来 运行 我的每个测试:-
- 创建用户
- 验证用户
- 删除用户
我需要先完全执行 Class1
然后 Class2
等等。
我必须对 testng 的注释进行任何更改吗?
使用 BeforeMethod
而不是 BeforeTest
。 BeforeTest
方法将 运行 在 testng.xml
中的 <test>
标记之前,而不是在 @Test
方法之前。
当然也可以使用 AfterMethod
而不是 AfterTest
。
查看我对另一个类似问题的回答:
我正在为我的移动网站编写自动化代码。
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
当我运行上面的命令时,Class1
、Class2
、Class3
、Class4
中的@BeforeTest
首先被调用。这意味着在 运行 任何测试之前首先创建 4 个用户。然后只有 Class1
测试是 运行ning 然后 Class2
等等。来自所有 类 的 Atlas @AfterTest
是 运行ning(删除所有用户 atlast)。
我不想要这种场景。
我需要以下方法来 运行 我的每个测试:-
- 创建用户
- 验证用户
- 删除用户
我需要先完全执行 Class1
然后 Class2
等等。
我必须对 testng 的注释进行任何更改吗?
使用 BeforeMethod
而不是 BeforeTest
。 BeforeTest
方法将 运行 在 testng.xml
中的 <test>
标记之前,而不是在 @Test
方法之前。
当然也可以使用 AfterMethod
而不是 AfterTest
。
查看我对另一个类似问题的回答: