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

Создание отчета Allure при запуске теста из IDE

ci
java
allure
Теги: #<Tag:0x00007f7b691b74e8> #<Tag:0x00007f7b691b7218> #<Tag:0x00007f7b691b6ea8>

(Михаил Братухин) #1

Добрый день!
У меня такой вопрос, возможно, немного странный. Есть проект где прикручена аллюра и при запуске теста из консоли с помощью мавена: mvn clean test и далее mvn site отчет создается и все хорошо. Но если пытаюсь запустить тестовый класс из IDE (Intellej IDEA 2017.1 Community), то отчет не собирается, не хватает каких-то данных в /target каталоге.
Вот хотелось бы, чтобы отчет мог формироваться и при запуске из IDE, а не только через консоль. Для CI/CD это не нужно, но лениво через консоль запускать, да и тесты должны дважды пройти. Есть идеи как это сделать и делал ли кто-то что-то подобное?


(Oleksii Ihnatiuk) #2

Вам необходимо подумать что делает команда mvn clean test и команда mvn site. Когда вы запускаете тест из IDE, то вы выполняете только первую часть.
Плюс советую вам почитать доку по Allure и станет немного понятней :wink:


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

Дело в том, что данные для allure отчета формируются с использованием какого-то из allure listener’ов (junit, testng, cucumber). Это все настраивается в surefire плагине maven. Вам по идее нужно в настройках запуска тестов Idea прописать этот же listener. Отчет скорее всего можно будет формировать также mvn site. Но у allure есть и вариант с командной строкой.


(Антон Афтахов) #4

Из-за того что листнер для testng подключается железобетонно (в отличии от junit, где мы можем выбрать версии junit4 и junit5) - при запуске в IDEA файлы в allure-results создаются успешно (нужно только не забыть создать файлик allure.properties где указать верный путь для папки allure.results.directory=target/allure-results)
Это скорее всего незапланированная фича. Далее в allure2 можно вызвать цель allure:report или allure:serve и отчет сгенерируется (и откроется в браузере во втором случае). Перед следующим прогоном необходимо сделать clean.
Как решить вопрос с запуском junit? allure.properties при этом что интересно учитывается (в случаях когда генерируется attachments, например скриншоты. Но вот остальные результаты не генерируются, потому что не указан нужный listener


(Антон Афтахов) #5

Удалось все таки найти решение для JUnit4 и запуска тестов в IDEA
Во первых нужен файлик allure.properties в resources
allure.results.directory=target/allure-results

UPDATE: Оказалось нужно было всего лишь добавить зависимость allure-junit4-aspect в pom

        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit4-aspect</artifactId>
            <version>2.0-BETA17</version>
        </dependency>

(Антон Афтахов) #6

Оказалось что allure-junit4-aspect негативно влияет на запуск тестов с помощью maven


(Антон Афтахов) #7

Оказалось нужно использовать версию 15, чтобы и в IDEA и в maven работало

        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit4-aspect</artifactId>
            <version>2.0-BETA15</version>
        </dependency>

(Антон Афтахов) #8

Нашел возможность активировать зависимость только при локальном запуске в IDEA. Профиль не активен при запуске в maven локально (из IDEA) и удаленно на сервере

    <profiles>
        <profile>
            <id>junit4-aspect</id>
            <activation>
                <!--https://stackoverflow.com/questions/24760387/activate-certain-maven-profile-in-intellij-idea-only-->
                <property>
                    <name>idea.maven.embedder.version</name>
                </property>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>io.qameta.allure</groupId>
                    <artifactId>allure-junit4-aspect</artifactId>
                    <version>2.0-BETA19</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
    </profiles>

В Idea это выглядит так , причем на профиль junit4-aspect вообще не нужно нажимать, галочка там всегда будет серая. При этом другие профили можно менять.