因此,我有使用TestNG测试UI的Selenium测试,但是现在我正在努力解决一个问题:如何在参数化测试之前只执行一次特定的方法?我有一个像这样的参数化测试:
@Test(dataProvider="myProvider")
public void testMyThingToTest() {
// Things to test in here
}我的参数化测试非常有效,并且对给定的每个参数执行一次。现在我有了一个对参数化测试的所有实例通用的初始化,所以我希望它只运行一次,而不是在之前运行参数化测试的每个实例.如果我使用@BeforeTest或@BeforeMethod这样的操作:
@BeforeMethod
public void initialization() {
// The initialization phase here...
}init方法在每次测试之前运行.知道怎么做到吗?这样做的目的是避免为每个参数做大量的工作,因为我的初始化大约需要30秒,而且我有7-8个参数进行测试,所以我宁愿初始化时间为30秒* 1,而不是30秒* 8。
发布于 2014-07-10 08:37:02
如果我正确理解,您希望只对测试类中的所有测试执行一次方法。
TestNG为该@BeforeClass提供了一个注释:注释将在运行当前测试类上的第一个方法之前运行的方法。
你可以在http://java.dzone.com/articles/testng-beforeclass-annotation找到一个例子
发布于 2014-07-10 08:40:42
试一试
@BeforeSuite
public void initialization() {
// Init suite
}如果你想要其他场景的话。选择具有以下优先级的注释:@BeforeSuite > @BeforeTest > @BeforeClass > @BeforeMethod
发布于 2016-12-20 18:49:52
数据提供者中的调用函数
@DataProvider
public Object[][] FeederOfResponseCodes()
{
initialization();
return new Object[][]
{
};
}https://stackoverflow.com/questions/24671500
复制相似问题