Да, @BeforeClass
и @BeforeSuite
будут выполнены до @DataProvider
в TestNG
.
Вы можете сослаться на документацию testNG
@ BeforeSuite: Аннотированный метод будет запущен до того, как будут выполнены все тесты в этом наборе.
@ BeforeClass: Аннотированный метод будет запущен до того, как будет вызван первый тестовый метод в текущем классе.
Хотя он не дает четкого представления о том, будет ли он выполняться до @DataProvider
или нет, я создал образец теста
public class SeleniumJava {
Object[][] testData;
@DataProvider
public Object[][] data() {
System.out.println("In @DataProvider");
return testData;
}
@BeforeClass
public void setData() {
System.out.println("in @BeforeClass");
testData = new String[][]{new String[]{"data1"}, new String[]{"data2"}};
}
@Test(dataProvider = "data")
public void printData(String d) {
System.out.println(d);
}
}
################# Вывод ################
в @ BeforeClass
в @ DataProvider
data1
data2
Надеюсь, это ответит на ваш вопрос.
Удачного кодирования ~