Как прикрутить Allure к Cucumber (Java) ?

Всем привет,
Неделю назад перешел в мир автоматизации на java, стек - Java + JUnit + Cucumber + Allure + Gradle. Подскажите, как правильно навешивать аннотации , как запускать и какие(и где) методы создать чтоб завести это все дело? Заранее спасибо.

Это Allure Framework видели? + Allure Framework

Читал и читаю, но что-то не получается. Сложность с зависимостями. Для меня пока мир java еще не раскрыт полностью

В туториале описываются разные кейсы, как для junit, allure и еще отдельно для селенида, не разобрался. Подскажите, лисенеры надо прописывать в ранеры ? Анотации навешивать на степы и/или методы реализации определенных действий ?

Разобрался как запускать и вешать аннотации на методы и генерировать отчет

Подскажите, Вы у себя реализовывали Allure в связке Gradle - JUnit - Selenide ?

Аллюр + Мавен + ТестНГ + Селенид. А что собственно интересует?

Плагины Allure есть для Junit , Selenide, Cucumber JVM … какой именно выбрать ?

Раз вы используете Cucumber JVM, то плагин для него.

Вы именно его использовали? При добавлении зависимости в Gradle

  • compile group: ‘io.qameta.allure’, name: ‘allure-cucumber-jvm’, version: ‘2.0-BETA6’
    Получаю ошибку :

java.lang.IncompatibleClassChangeError: Class cucumber.runtime.RuntimeOptions does not implement the requested interface io.cucumber.core.options.FeatureOptions

Подскажите, что я делаю не так ?

Какая бета? Откуда вы такую взяли версию.

<dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-cucumber4-jvm</artifactId>
        <version>2.10.0</version>
</dependency>

Но в процессе нахождения версии я нашел инфу, что они закинули разработку этого плагина. Нужно использовать плагин для junit + ещё несколько настроек в поме: Allure Framework

        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit5</artifactId>
            <version>LATEST_VERSION</version>
        </dependency>

А можете прописать “для дурака” что в градле добавить ? Вообще ничего не получается (

Вот для гредла же:
https://docs.qameta.io/allure/#_gradle_2

Прочитала всю тему и документацию, но понять не могу как сделать так, чтобы в отчёте отображались шаги.
В данный момент у меня отображается только фича, хотя в ней есть шаги

build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath “io.qameta.allure:allure-gradle:2.3”
}
}

apply plugin: ‘java’
apply plugin: ‘io.qameta.allure’

allure {
version = ‘2.4.1’
aspectjweaver = true
autoconfigure = true

useCucumberJVM {
    version = '2.0-BETA21'
}

}

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.testng:testng:7.0.0’
implementation ‘org.seleniumhq.selenium:selenium-java:3.141.59’
implementation ‘org.hamcrest:hamcrest:2.2’
implementation ‘com.beust:jcommander:1.78’
implementation ‘com.thoughtworks.xstream:xstream:1.4.11.1’
implementation ‘com.google.code.gson:gson:2.8.6’
implementation ‘ch.qos.logback:logback-classic:1.2.3’
implementation ‘mysql:mysql-connector-java:8.0.19’
implementation ‘org.hibernate:hibernate-core:5.4.11.Final’
implementation ‘info.cukes:cucumber-java:1.2.6’
implementation ‘info.cukes:cucumber-testng:1.2.6’
implementation ‘com.codeborne:selenide:5.11.1’
}

Наверно, из-за того что сам кукумбер старый и аллюр для него?
https://docs.qameta.io/allure/#_installation_4
https://cucumber.io/docs/installation/java/#gradle

dependencies {
    testCompile 'io.cucumber:cucumber-java8:5.6.0'
    testCompile 'io.cucumber:cucumber-junit:5.6.0'
}

repositories {
    mavenCentral()
}

Да. Действительно версия старая и использовать её - не выход.
Но везде для более поздних версий предлагается JUnit.
Работающей версии gradle+TestNG+Cucumber+ allure, так и не получается собрать.

Вот так мне удалось получить результат:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.qameta.allure:allure-gradle:2.8.1"
    }
}

plugins {
    id 'java'
}

repositories {
    mavenLocal()
    mavenCentral()
}

apply plugin: 'io.qameta.allure'
allure {
    autoconfigure = true
    version = '2.13.3'
    resultsDir = file('путь к проекту\\allure-results') // т.е. где у вас создаётся папка с результатами после прохода тестов
}

dependencies {
    implementation 'io.qameta.allure:allure-cucumber5-jvm:2.13.3'
    testImplementation 'io.cucumber:cucumber-java:5.7.0'
    testImplementation 'io.cucumber:cucumber-testng:5.7.0'
}

group = 'hellocucumber'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = '1.8'

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

configurations {
    cucumberRuntime {
        extendsFrom testImplementation
    }
}

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "io.cucumber.core.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', \
                    '--plugin', 'io.qameta.allure.cucumber5jvm.AllureCucumber5Jvm', \
                    '--strict', \
                    '--glue', 'hellocucumber', 'src/test/resources']
        }
    }
}
2 лайка

Перечитал данную тему 3 раза, но не смог решить свою проблему.
Суть Allure не видит тесты Cucumber.
Пробовал разные варианты сейчас остановился на следующим


plugins {
    id 'java'
    id "io.qameta.allure" version "2.9.6"
}



apply plugin: 'io.qameta.allure'
allure {
    report {
        autoconfigure = true
        version.set("2.18.1")
    }
    adapter {
        autoconfigure.set(true)
        aspectjWeaver.set(true)
        frameworks {
            useJUnit5 {
                version = '2.7.0' // Latest Allure Version
            }
        }
    }
}


repositories {
    mavenCentral()
}
compileJava {
    options.encoding = 'UTF-8'
}
compileTestJava {
    options.encoding = 'UTF-8'
}

dependencies {

    implementation 'junit:junit:4.13.2'
    implementation 'io.cucumber:cucumber-jvm:7.3.3'
    testImplementation (
            'io.cucumber:cucumber-java8:7.3.3',
            'io.cucumber:cucumber-junit:7.3.3',
            'io.cucumber:cucumber-junit-platform-engine:7.3.3',

            'io.cucumber:cucumber-jvm:7.3.3',
            'junit:junit:4.13.2',


            'io.cucumber:cucumber-java:7.3.3',
            'org.junit.vintage:junit-vintage-engine:5.8.2',
            'org.projectlombok:lombok:1.18.12',
            'org.apache.logging.log4j:log4j-core:2.17.2',

            'io.github.bonigarcia:webdrivermanager:5.2.0',
            'com.github.kirlionik:allure-cucumber-plugin:1.0.3',
            'ru.yandex.qatools.allure:allure-core:1.5.4',
            'ru.yandex.qatools.allure:allure-java-aspects:1.5.4',
            'ru.yandex.qatools.allure:allure-commons:1.5.4',
            'info.cukes:cucumber-core:1.2.6',
            'io.qameta.allure:allure-selenide:2.18.1',
            'io.qameta.allure:allure-cucumber7-jvm:2.18.1',
            'org.aspectj:aspectjweaver:1.9.9.1',
            'io.qameta.allure:allure-cucumber-jvm:2.18.1',
            'com.codeborne:selenide:6.6.3',
            'org.junit.jupiter:junit-jupiter-api:5.8.2')
    testRuntimeOnly'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}
repositories {
    mavenCentral()
}

test {
    useJUnitPlatform()
}
configurations {
    cucumberRuntime {
        extendsFrom testImplementation
    }
}

task cucumber() {
    dependsOn assemble, compileTestJava
    doLast {
        javaexec {
            main = "io.cucumber.core.cli.Main"
            classpath = configurations.cucumberRuntime + sourceSets.main.output + sourceSets.test.output
            args = ['--plugin', 'pretty', \
                    '--plugin', 'io.qameta.allure.cucumber5jvm.AllureCucumber5Jvm', \
                    '--strict', \
                    '--glue', 'hellocucumber', 'src/test/resources']
        }
    }
}

сам проект GitHub - Andre0023/Mos_Ecom
Помогите пожалуйста разобраться что делаю не так.

У тебя как минимум не тот кукумбер указан.
Ты используешь 7-ой, а указан у тебя плагин для пятого.
Но я бы вообще убрал таску с кукумбером из гредла в сторону создания junit5 runner и туда бы вынес настройки кукумбера. ЭТо не совсем ответ на твой вопрос, но в целом можешь попробовать подвинуться в эту сторону