Всем привет,
Неделю назад перешел в мир автоматизации на java, стек - Java + JUnit + Cucumber + Allure + Gradle. Подскажите, как правильно навешивать аннотации , как запускать и какие(и где) методы создать чтоб завести это все дело? Заранее спасибо.
Читал и читаю, но что-то не получается. Сложность с зависимостями. Для меня пока мир 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>
А можете прописать “для дурака” что в градле добавить ? Вообще ничего не получается (
Прочитала всю тему и документацию, но понять не могу как сделать так, чтобы в отчёте отображались шаги.
В данный момент у меня отображается только фича, хотя в ней есть шаги
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 = trueuseCucumberJVM { 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']
}
}
}
Перечитал данную тему 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 и туда бы вынес настройки кукумбера. ЭТо не совсем ответ на твой вопрос, но в целом можешь попробовать подвинуться в эту сторону