Перейти к содержимому

Фотография

Аннотация для метода, запускаемого 1 раз перед всей группой тестов

JUnit Cucumber

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Aleksey_2

Aleksey_2

    Новый участник

  • Members
  • Pip
  • 17 сообщений

Отправлено 17 июля 2020 - 11:24

Здравствуйте. Известно, что Cucumber поддерживает хуки (hooks) – методы, запускаемые до или после сценария. Для их обозначения используются аннотации @Before и @After. Метод c аннотацией @Before будет запускаться перед каждым сценарием, @After – после.

Пример класса с хуками:

public class Hooks {
 
  @Before
  public void init() {
    System.out.println("before each Cucumber scenario");
  }
 
  @After
  public void stop() {
    System.out.println("after each Cucumber scenario");
  }
}

Подскажите, какие я могу использовать аннотации, чтобы пометить метод, для того чтобы я мог запустить его 1 раз перед всей папкой с фича-файлами (и после)? И если такой аннотации не существует, то можно ли это сделать как то по другому?

P.S.: Мне нужно использовать именно JUnit 5 (TestNG использовать не могу).


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 17 июля 2020 - 14:46

@BeforeClass и @AfterClass поддерживаются, но не рекомендуются.

https://cucumber.io/...unning-cucumber - в самом конце раздела - Supported JUnit annotations


  • 1

#3 Aleksey_2

Aleksey_2

    Новый участник

  • Members
  • Pip
  • 17 сообщений

Отправлено 20 июля 2020 - 05:57

@BeforeClass и @AfterClass поддерживаются, но не рекомендуются.

https://cucumber.io/...unning-cucumber - в самом конце раздела - Supported JUnit annotations

Попробовал так:

@BeforeClass
  public static void setup() {
    System.out.println("this method will bw executed before all scenarios");
  }

И аналогично для @AfterClass.

 

Странно, но метод не отрабатывает. Соответствующего сообщения в консоли нет.

 

Попробовал вместо @BeforeClass написать @BeforeAll  (т.к. у меня JUnit 5), всё равно не запускается метод.


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 20 июля 2020 - 07:09

Вы включили junit-vintage-engine? Т.к. кукумбер использует 4 версию. Думаю, что и вам надо её использовать.

Cucumber is based on JUnit 4. If you’re using JUnit 5, remember to include junit-vintage-engine dependency, as well.

https://junit.org/ju...-junit4-running


  • 0



Темы с аналогичным тегами JUnit, Cucumber

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных