运行 对多个数据输入进行测试 (TestNG)

Run tests (TestNG) on multiple data inputs

我是自动化测试(TestNG)的新手,我有以下困境。我想 运行 对多个数据输入进行一些测试。 我的结构是这样的:

  1. 我的测试是在 TestHotelSearchResults class 上进行的,它扩展了另一个 class - InitialSetup 我保留我的 @BeforeClass 方法
  2. @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);
}
}

您只需要在数据提供者中分离数据。保持beforeclass的设置和测试的流程。

例如

@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);
    }