是否可以每次使用不同的@BeforeMethod 多次运行 @Test testNG 注释?
Is it possible to run @Test testNG annotation multiple times with a different @BeforeMethod each time?
我有 3 个方法(“setup1”、“setup2”、“setup3”),我在每个方法上都使用了 @BeforeMethod 注释。每种方法都做一些不同的事情,我想 运行 方法 Test1() 3 次,每次使用不同的 @BeforeMethod 方法(例如:运行1: setup1()>>Test1(), 运行2:setup2()>>Test1(),运行3:setup3()>>Test1())。这可能吗?
这是我的代码:
@BeforeMethod
public void setup1() {
//do something
}
@BeforeMethod
public void setup2() {
//do something else
}
@BeforeMethod
public void setup3() {
//do something else
}
@Test
public void Test1() {
//do something
}
我试过在 @Test:
中使用 dependsOnMethods{}
@Test(dependsOnMethods = {"setup1","setup2", "setup3"})
public void Test1(){
//do something
}
但是这种方法不起作用,因为它会在到达 Test1() 之前立即 运行 所有 3 个 @BeforeMethods 而我想要完成的是 运行ning setup1() >>Test1(), 运行 setup2()>>Test1() 最后 运行 setup3()>>Test1().
您可以创建一个数据提供程序方法,在其中可以创建 3 个不同的用户并将其传递给测试方法。因此将为每个用户调用测试方法。
@Test(dataProvider = "users")
public void Test1(User user) {
//do something with user
}
@DataProvider
public Object[][] users(){
User user1 = null; //replace the null with code to create user1
User user2 = null; //replace the null with code to create user2
User user3 = null; //replace the null with code to create user3
return new Object[][]{{user1},{user2},{user3}};
}
我不认为使用 @BeforeMethod
可以完成类似的实现
我有 3 个方法(“setup1”、“setup2”、“setup3”),我在每个方法上都使用了 @BeforeMethod 注释。每种方法都做一些不同的事情,我想 运行 方法 Test1() 3 次,每次使用不同的 @BeforeMethod 方法(例如:运行1: setup1()>>Test1(), 运行2:setup2()>>Test1(),运行3:setup3()>>Test1())。这可能吗?
这是我的代码:
@BeforeMethod
public void setup1() {
//do something
}
@BeforeMethod
public void setup2() {
//do something else
}
@BeforeMethod
public void setup3() {
//do something else
}
@Test
public void Test1() {
//do something
}
我试过在 @Test:
中使用 dependsOnMethods{}@Test(dependsOnMethods = {"setup1","setup2", "setup3"})
public void Test1(){
//do something
}
但是这种方法不起作用,因为它会在到达 Test1() 之前立即 运行 所有 3 个 @BeforeMethods 而我想要完成的是 运行ning setup1() >>Test1(), 运行 setup2()>>Test1() 最后 运行 setup3()>>Test1().
您可以创建一个数据提供程序方法,在其中可以创建 3 个不同的用户并将其传递给测试方法。因此将为每个用户调用测试方法。
@Test(dataProvider = "users")
public void Test1(User user) {
//do something with user
}
@DataProvider
public Object[][] users(){
User user1 = null; //replace the null with code to create user1
User user2 = null; //replace the null with code to create user2
User user3 = null; //replace the null with code to create user3
return new Object[][]{{user1},{user2},{user3}};
}
我不认为使用 @BeforeMethod