Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

После перехода на allure2 в jenkins не генерируется отчет

jenkins
maven
junit
allure
Теги: #<Tag:0x00007f7b64de2a38> #<Tag:0x00007f7b64de28f8> #<Tag:0x00007f7b64de27b8> #<Tag:0x00007f7b64de2678>

(y0ga) #1

Нужно ли менять джобу джнекинса при перехорде на allure2 с allure?
После изменения pom.xml перестали генериться отчеты в jenkins:

ERROR: Build step failed with exception
ru.yandex.qatools.allure.jenkins.execption.AllurePluginException: Can not generate Allure Report, exit code: 1

(Bolatbek) #2

https://docs.qameta.io/allure/2.0/#_jenkins


(Oleg Kuzovkov) #3

Да, я вчера тоже обновился и репорт перестал генерится. Я поменял папку с репортом на allure-results и обновил дженкинс Allure pluggin до последней версии и таки получил репорт, но без аттачментов, и только результаты тестов, вся остальная морда осталась пока пустая:

Разбираюсь дальше.


(Roma Marinsky) #4

А адаптер ты обновил до новой версии?


(Oleg Kuzovkov) #5

Конечно :slight_smile:
2.1.0b1

Чем дальше ковыряю тем больше все ломается. Придется откатиться назад на стабильную версию.
Если кто настроил все со второй аллурой - просветите пожалуйста.


(Sergey Korol) #6

У JUnit насколько я помню есть проблемы с формированием результатов в последних адаптерах. allure-results вообще не появляется. Цепная реакция после какого-то баг фикса.

Из недавнего эксперимента в слаке проблема решалась откатом до <= BETA12 версии.


(y0ga) #7

Я вроде бы все настроил, тесты крутятся, репорты мутятся 8)! Но теперь не могу с помощью аннотаций добавить Title и Description к тестам и сьютам!


(Oleg Kuzovkov) #8

Ну а аттачменты работают? А то у меня все что я атачу, независимо от типа, отображается как текст.


(y0ga) #9

Нет, из аннотаций только степ нормально отрабатывают


(Oleg Kuzovkov) #10

Ну вот и я о том же. Репорт то у меня тоже получилось сгенерить, но его информативность не очень пока. Ждем дальнейших версий :slight_smile:


(Sergey Korol) #11

Тут есть примеры и атачментов (как через аннотацию, так и утилитными вызовами), и дескрипшена. Тайтлов во второй версии нет.


(y0ga) #12

Спасибо.
А как же теперь дать human readable имена тестам?


(Sergey Korol) #13

Очень просто. Теперь тайтлы берутся нативно для junit / testng.

@Test(description = "My super test")


(y0ga) #14

Для junit4 можно DisplayName использовать


(y0ga) #15

А где в репорте должны отображаться дескрипшны (io.qameta.allure.Description)? После генерации репорта ничего похожего на то как это выглядело первой версии я не вижу.


(Sergey Korol) #16

Дескрипшен генерится из javadocs. В аннотации надо указать флаг useJavaDocs = true.


(y0ga) #17

А достаточно только перед методом будет добавить комментарий джавадок или нужно еще куда-то сгенерить его в хтмл?
Сейчас я сгенерил джавадок в корневую папку проекта но у меня в репорте но сих по не видно дескрипшн поля.


(Sergey Korol) #18

Не нужно ничего генерить. Над методом должен быть javadoc + флаг в аннотации.
Пример такого теста есть в проекте по ссылке выше.


(y0ga) #19

Ну по идее все должо было бы работать но у меня дескришн добавить так и не получилось.
Видел ваш пример, сделал аналогично у себя но все тщетно.

Что-то может я забыл в pom.xml?

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.111</groupId>
    <artifactId>111</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <aspectj.version>1.8.9</aspectj.version>
        <compiler.version>1.7</compiler.version>
        <driver.browser>chrome</driver.browser>
        <test.includeCategories></test.includeCategories>
        <test.excludeCategories></test.excludeCategories>
        <api>2.10</api>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>3.3</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit4</artifactId>
            <version>2.0-BETA13</version>
        </dependency>
        <dependency>
            <groupId>com.codeborne</groupId>
            <artifactId>selenide</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>3.0.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>json-schema-validator</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-rest-assured</artifactId>
            <version>2.0-BETA13</version>
        </dependency>
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>1.4.9</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.21</version>
        </dependency>
        <dependency>
            <groupId>com.tngtech.java</groupId>
            <artifactId>junit-dataprovider</artifactId>
            <version>1.10.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-java-annotations</artifactId>
            <version>1.5.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                    <systemPropertyVariables>
                        <webdriver.chrome.driver></webdriver.chrome.driver>
                        <driver.browser>${driver.browser}</driver.browser>
                        <apiversion>${api}</apiversion>
                    </systemPropertyVariables>
                    <groups>${test.includeCategories}</groups>
                    <excludedGroups>${test.excludeCategories}</excludedGroups>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>io.qameta.allure.junit4.AllureJunit4</value>
                        </property>
                    </properties>
                    <systemProperties>
                        <property>
                            <name>allure.results.directory</name>
                            <value>${project.build.directory}/allure-results</value>
                        </property>
                    </systemProperties>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>2.8</version>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>api_smoke</id>
            <properties>
                <test.includeCategories>com.sandbox.categories.ApiSmoke</test.includeCategories>
                <api>2.10</api>
            </properties>
        </profile>
    </profiles>

</project>

(Sergey Korol) #20

Ну как минимум вот этого быть точно не должно.

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-java-annotations</artifactId>
            <version>1.5.4</version>
            <scope>test</scope>
        </dependency>

Для миграции есть спец. модуль:

Но генерация из javadocs - это фича второй версии. Так что вы либо должны использовать аннотации из модуля миграции (что лишает вас фич второй версии), либо переходить на полноценную вторую версию.