Глобальные хуки в Serenity BDD

Я пытался реализовать глобальные хуки в serenity-bdd проекте. Когда я просматривал найденные ниже ссылки, ни одна из них не работала для меня. Однако некоторые из них не относятся к Serenity-BDD.

package mypackage;

import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import net.serenitybdd.cucumber.CucumberWithSerenity;

@RunWith(CucumberWithSerenity.class)
@CucumberOptions(
        features = "src/test/resources/features",
        glue = {"MyProj.cucumber.stepdefinition"},
public class MyTest {

         @Before
         public static void setUp() {
                 //do something here
         }

}

Решение 1

Решение 2

Мои версии Maven:

введите здесь описание изображения  введите описание изображения здесь


person SMPH    schedule 15.05.2020    source источник


Ответы (1)


Я не уверен, что уловил ваши цели и то, что вы хотите сделать до выполнения теста. Поскольку вы используете фреймворк Serenity, я предлагаю вам взглянуть на реализацию StepListener. Он использует Java SPI. Возможно вам это пригодится в вашей задаче.

В нескольких словах:

У Serenity есть класс StepEventBus, который имеет логику для загрузки реализации службы из пути к классам перед выполнением теста. Вам нужно только реализовать свой собственный StepListener и методы переопределения. И после этого вы сможете запускать свой код на разных этапах выполнения (запуск функции, запуск теста, запуск шага и т. Д.)

person Bogdan Pisarenko    schedule 09.12.2020