В чем разница между аннотациями @BeforeTest и @BeforeSuit? - PullRequest
0 голосов
/ 18 ноября 2018

В чем разница между аннотациями @BeforeTest и @BeforeSuit? У меня есть 2 метода с аннотацией @Test и один метод @BeforeTest. Когда я запустил его, метод @BeoforeTest был выполнен только один раз. Разве он не должен запускаться перед каждым методом @Test?

Ответы [ 4 ]

0 голосов
/ 19 ноября 2018

Вы можете сослаться на этот пример,

https://stackoverflow.com/a/50814147/9405154

Если вы хотите вызывать аннотацию перед каждым методом Test, вам необходимо использовать аннотацию @BeforeMethod. И @BeforeTest, и @BeforeSuite будут вызываться только один раз при выполнении. У них просто другой подход к выполнению набора .XML.

0 голосов
/ 18 ноября 2018

@ BeforeTest

эта аннотация будет выполняться перед каждым методом тестирования, например

@BeforeTest
public void Setup()
{
System.out.println("before test");
}

@Test
public void test1()
{
System.out.println("Test1");
}

@Test
public void test2()
{
System.out.println("Test2");
}

Then output is as
 before test
 Test1
 before test
 Test2

где как @BeforeSuite эта аннотация будет выполняться @ beforeclass

0 голосов
/ 18 ноября 2018

@BeforeTest -

  1. Любой код, написанный в методе с этой аннотацией, будет запускаться один раз для всех методов с аннотацией @Test внутри класса.

  2. Это лучше всего подходит для условия, которое является обязательным условием для всех испытаний, например тест 1 - это просмотр профиля пользователя, тест 2 - добавление товара в корзину, тест 3 - управление адресом, эти тесты зависят от условия, при котором пользователь должен войти в систему, поэтому мы можем записать функциональность входа в метод с аннотацией @BeforeTest.

  3. Он присутствует в том же классе, в котором написан метод @Test.

  4. Это в основном применяется на уровне метода.

@BeforeSuite -

  1. Любой код, написанный в методе с этой аннотацией, будет запускаться один раз в полном жизненном цикле комплекта, т.е. для полного testng.xml.

  2. Это лучше всего подходит для инициализации конфигурационных файлов, создания соединений с базой данных и т. Д.

  3. Эта аннотация в основном используется в Базовом классе класса, в котором присутствует метод @Test

@ Edit - Изменены детали аннотации @BeforeTest

0 голосов
/ 18 ноября 2018

@ BeforeTest будет выполняться для каждого класса

Возможно, вы хотите использовать метод тестирования, затем используйте @ BeforeMethod :

Аннотированный метод будет запускаться перед каждым методом тестирования.

@ BeforeTest: аннотированный метод будет запущен до запуска любого тестового метода, принадлежащего классам внутри тега

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