我是自动化测试的新手(TestNG),我有以下两难困境。我想对多个数据输入运行一些测试。 我的结构是这样的:
TestHotelSearchResults
类上,扩展了另一个类 - InitialSetup
,我保留了@BeforeClass
方法@BeforeClass
方法中,我实例化驱动程序,转到URL并执行我想在不同目的地执行的初始搜索。 (现在它是在纽约制作的)据我所知,我无法将DataProvider用于@BeforeClass
,那么我的替代方案是什么。
class TestHotelSearchResults extends InitialSetup {
@Test
...
}
class InitialSetup extends Base {
@BeforeClass
public void Init() {
super.setUp();
HomePage hp = PageFactory.initElements(getDriver(), HomePage.class);
hp.goTo();
hp.searchHotelAfterDestination("New York", CriteriaSearchEnum.DESTINATION);
}
}
答案 0 :(得分:1)
您只需要分隔数据提供者中的数据。将设置保留在前类和测试中的流程中。
例如。
@BeforeClass
public void setup(){
System.out.println("Init driver here");
}
@DataProvider
public Object[][] sendData(){
return new Object[][]{
{"NewYork"},{"Boston"},{"Chicago"}
};
}
@Test(dataProvider="sendData")
public void test1(String city){
System.out.println("Going to "+city);
}