使用TestNG,为什么@DataProvider
之前运行 @BeforeClass
?
似乎有时会@DataProvider
先运行,有时@BeforeClass
不会?
有人知道原因吗?
这只是它今天实施的方式,这对你来说是个问题吗?
请在下面找到执行顺序:
@BeforeSuite
@BeforeTest
@BeforeClass
@DataProvider
@BeforeMethod
@AfterMethod
@AfterClass
@AfterTest
@AfterSuite
@课前
BeforeClass annotation
方法在第一个测试方法之前只运行一次。Current Class 方法将是从中调用它的方法。
@DataProvider
DataProvider annotation
方法返回一个 Object[ ][ ] 类型的值,其中每个 Object[ ] 都可以分配为要从该 DataProvider 注释方法接收数据的测试方法的参数。
public class TestNgDataProviderExample {
@BeforeClass
public void beforeClass() {
System.out.println("in beforeClass");
}
@Test(dataProvider = "getData")
public void instanceDbProvider(int p1, String p2) {
System.out.println("DataProvider Data(" + p1 + ", " + p2 + ")");
}
@DataProvider
public Object[][] getData() {
return new Object[][] {{5, "five"}, {6, "six"}};
}
}
输出: