Почему аннотация @DataProvider выполняется до @BeforeClass в TestNG? - PullRequest
7 голосов
/ 23 сентября 2010

Используя TestNG , почему @DataProvider запускается до @BeforeClass?

Кажется, что иногда @DataProvider запускается до @BeforeClass, а иногда нет?

Кто-нибудь знает причину?

Ответы [ 3 ]

4 голосов
/ 23 сентября 2010

Это так, как это реализовано сегодня, это проблема для вас?

1 голос
/ 07 августа 2018

Ниже приведена последовательность выполнения:

@BeforeSuite
@BeforeTest
@BeforeClass
@DataProvider
@BeforeMethod
@AfterMethod
@AfterClass
@AfterTest
@AfterSuite
0 голосов
/ 07 августа 2018

@ BeforeClass

BeforeClass annotation Метод выполняется только один раз перед первым методом тестирования.Метод Current Class будет тем, из которого он вызван.

@ DataProvider

DataProvider annotation метод возвращает значение типа Object [] [], где каждый объект Object[] может быть назначен в качестве параметра метода теста, который хочет получать данные из этого метода аннотации DataProvider.

public class TestNgDataProviderExample {
    @BeforeClass
    public void beforeClass() {
        System.out.println("in beforeClass");
    }
    @Test(dataProvider = "getData")
    public void instanceDbProvider(int p1, String p2) {
        System.out.println("DataProvider Data(" + p1 + ", " + p2 + ")");
    }

    @DataProvider
    public Object[][] getData() {
        return new Object[][] {{5, "five"}, {6, "six"}};
    }
}

Вывод:

  • в beforeClass
  • Данные DataProvider (5, пять)
  • Данные DataProvider (6, шесть)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...