t.me/atinfo_chat Telegram группа по автоматизации тестирования

Создание Allure report в связке с Cucumber

Теги: #<Tag:0x00007fd76b046c40> #<Tag:0x00007fd76b046b50> #<Tag:0x00007fd76b046a60> #<Tag:0x00007fd76b046970> #<Tag:0x00007fd76b046830> #<Tag:0x00007fd76b046768> #<Tag:0x00007fd76b0466a0>

Нууу, вы как тестировщик в первую очередь, как оцениваете своё сообщение по полноте описаной проблемы?

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.2</version>
				<configuration>
					<testFailureIgnore>false</testFailureIgnore>
					<argLine>
						-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
						-Dcucumber.options="--plugin io.qameta.allure.cucumberjvm.AllureCucumberJvm"
					</argLine>
					<properties>
						<property>
							<name>listener</name>
							<value>io.qameta.allure.junit4.AllureJunit4</value>
						</property>
					</properties>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.aspectj</groupId>
						<artifactId>aspectjweaver</artifactId>
						<version>${aspectj.version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>io.qameta.allure</groupId>
				<artifactId>allure-maven</artifactId>
				<version>2.8</version>
				<configuration>
					<reportVersion>2.3.1</reportVersion>
				</configuration>
			</plugin>
		</plugins>
	</build>
<dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-cucumber-jvm</artifactId>
            <version>2.13.3</version>
        </dependency>

Вот так выглядит код, что я добавил в POM файл.
В проекте сейчас используется surefire report я хочу сделать Allure.
Я не удалял код, который уже был.

Получаю такую ошибку:
org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?

Если удаляю эту строку: -Dcucumber.options="–plugin io.qameta.allure.cucumberjvm.AllureCucumberJvm" - все нормально запускается

Версия cucumber в проекте используется первая, я так понимаю

<dependency>
			<groupId>info.cukes</groupId>
			<artifactId>cucumber-java</artifactId>
			<version>1.2.5</version>
		</dependency>

Проперти с io.qameta.allure.junit4.AllureJunit4 закомментируйте пока что. Это что-то лишнее.
aspectjweaver какой версии? пробуйте сначала с 1.8.10

у меня такая версия и указана
<aspectj.version>1.8.10</aspectj.version>

я вообще без понятия что делать…искал в интернете решение, много вариантов перепробовал из описанных и ничего не работает

например отсюда

Версия джавы какая (надо бы 8 использовать)?
Памяти на машине свободной хватает?
Закомментируйте это:

					<properties>
						<property>
							<name>listener</name>
							<value>io.qameta.allure.junit4.AllureJunit4</value>
						</property>
					</properties>

в джаве реально проект конфигурится через xml руками?

1 Симпатия

Java 8… памяти, думаю, хватает…как проверить это можно?
Закомментировал эту часть, таже проблема

Вот нашел еще такую ошибку в папке surefire-reports .dumpstream файл:
Error: Could not find or load main class -Dcucumber.options=–plugin io.qameta.allure.cucumberjvm.AllureCucumberJvm

Да, это maven сборщик проекта

Проверьте в зависимостях проекта, чтобы был пакет allure-cucumber-jvm
изображение
Раз класса не находит, значит проблемы что он плохо подключился, сделайте очистку.
allure-maven уже 2.10.0 версии, ещё укажите.

Поставил новую версию, проверил в зависимостях - все есть, но результат тот же
image

я уже в отчаянии каком-то, вообще без понятия что делать

Обновите джаву на свежую 251.
И свободная память в диспетчере задач.

Обновил джаву, памяти хватает, но результата нет :slightly_frowning_face:

Весь пом тогда давайте.

А файл к с отчётами создаётся вообще? А то может дело не в allure?

не создается, но ошибка такая возникает при запуске…то есть тесты не прогоняются

Вот и ответ. Allure не может построить отчёты, потому что нет самих отчётов. Разберитесь сначала с тестами, а потом и allure заработает

А можете подробнее описать где может крыться корень зла? :slight_smile:
Дело в том что фреймворк уже был создан ранее, здесь у нас обычный surefire report, который показывает только ошибку если тест падает, я хочу сделать что бы все было красиво с шагами и тд…

package com.webdriver.runner;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;

@CucumberOptions(
        features = {"src/main/java/com/webdriver/tests/features/"},
        glue = {"com.webdriver.tests.steps","com.webdriver.generichook"},
        monochrome = true,
        plugin = {"pretty","junit:target/junitReport/junitreport.xml"},
        tags = {"@test"}
)

public class MyRunner extends AbstractTestNGCucumberTests{
}

Runner выглядит вот таким образом, здесь еще TestNg зачем-то…может что-то с этим связанно быть?

Я просто не работал никогда с BDD поэтому, подозреваю, возникли такие сложности

Воспроизвёл, вроде, вот как надо для maven-surefire-plugin:
-Dcucumber.options="-p pretty -p io.qameta.allure.cucumberjvm.AllureCucumberJvm"

И в MyRunner для CucumberOptions тогда надо plugin выпилить.

Либо, наоборот, у плагина в поме выпиливаете cucumber.options, и указываете его только в MyRunner для CucumberOptions ( plugin = {"pretty","io.qameta.allure.cucumberjvm.AllureCucumberJvm"}).

И лучше попробовать перейти уже на 5 кукумбер.

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>5.7.0</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-testng</artifactId>
            <version>5.7.0</version>
        </dependency>

Затем как во втором сообщении.

1 Симпатия

Спасибо большое за помощь…в общем так и не смог я сделать алюр репорт, решил не изобретать велосипед и взял cucumber report…все поставил, отлично работает в дженкинс :slight_smile:

Очень странно! В официальной документации читали?