Выполняются ли методы, аннотированные @BeforeClass и @BeforeSuite, до @DataProvider в TestNG? - PullRequest
1 голос
/ 14 июля 2020

Я хочу использовать @BeforeClass для настройки некоторых тестовых данных и использовать его в @DataProvider.

Гарантированно ли, что @BeforeClass выполняется до @DataProvider?

1 Ответ

0 голосов
/ 19 июля 2020

Да, @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

Надеюсь, это ответит на ваш вопрос.

Удачного кодирования ~

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...