Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Инициализиация библиотек шагов для Allure

steps
allure
Теги: #<Tag:0x00007fedc10d0cd0> #<Tag:0x00007fedc10d0a78>

(Sterno) #1

Привет.

Некоторое время назад перешел на Allure с Serenity. В Allure есть аналогичная Serenity аннотация @Step, но нет аналогичной аннотации @Steps, из-за чего, используемые в тесте классы библиотек шагов нужно инициализировать вручную (что есть избыточный, громоздкий и повторяющийся код).

Сейчас инициализация библиотек шагов выглядит примерно так (используется testNG):

public class Test1 {

private StepsAlpha stepsAlpha;
private StepsBetta stepsBetta;
private StepsGamma stepsGamma;

    @BeforeClass
    public void init() {
        stepsAlpha = new StepsAlpha(driver);
        stepsBetta = new StepsBetta(driver);
        stepsGamma = new StepsGamma(driver);
    }
}

Хотелось бы это сделать так, как это есть в Serenity, т.е. указать аннотацию (например @Steps, по которой будет происходить инстанцинация нужных переменных (библиотек классов) и внедрение их в тестовый класс:

public class Test1 {

@Steps
private StepsAlpha stepsAlpha;

@Steps
private StepsBetta stepsBetta;

@Steps
private StepsGamma stepsGamma;

}

Может быть есть какие-то готовые библиотеки, которые позволяют сделать это, чтобы можно было использовать совместно с Allure, или придётся писать свой велосипед?


(Kirill Merkushev) #2

Guice, Spring IoC


(Sterno) #3

Это то, с помощью чего можно сделать велосипед, сюда же можно добавить AspectJ


(Баранов Иван) #4

Serenity BDD - это полноценный BDD фреймворк с богатой функциональностью.
Allure - инструмент для генерации красивых отчетов, не более того.
Поэтому при переходе с Serenity на Allure без велосипедов никак.
Однако, ничто не мешает Вам использовать их совместно, например.


(Sterno) #5

Serenity и Allure совместно? :slight_smile:
Если серьёзно, это очень плохая идея: начиная от ненужного потребления памяти, и заканчивая десятками лишних библиотек, которые будет подтягивать тот же Serenity, а учитывая его минусы, и количество багов/слабых мест, поддержка такого творения (если даже и заведётся) бдует занимать больше времени, чем написание тестов, ну и т.д.


(Баранов Иван) #6

Тогда DI фрейворки Вам в помощь. Allure не умеет что Вы хотите.