Allure, Jenkins и необходимость фейлить джобу с упавшим тестом

Версии прийду на работу гляну.
Локально так. Нет не через плагин не пробовали.

Ну вот попробуйте через jenkins запускать таким же образом, как и локально, - при помощи top level maven target, где собственно и будет указан site goal. Я именно так и делаю, никаких проблем с testng или неполными отчетами не замечал. Возможно какой-то баг с плагином. К тому же, разработчики Allure с testng не работают в принципе. Так что adaptor саппортится силами комьюнити. В новой версии его вообще не будет в core. Теперь адаптор будет частью testng team. Фактически из одного комьюнити его перекинули в другое. Что из этого выйдет - посмотрим. :slight_smile:

Странный подход господ из Яндекса :slight_smile:
А при таком подходе артефакт репорта будет ли виден?
Есть ли темка где такой подход обсуждался?

Репорт будет генериться там, где вы укажите в настройках allure-maven-plugin. Публиковать его можно при помощи html publisher plugin.

По темам: точно уже раньше обсуждались проблемы запуска jenkins plugin vs allure-maven-plugin.

1 лайк

Можете пожалуйста кинуть в меня парочкой ссылочек, где что-то подобное можно почитать (на любом языке), не совсем понимаю, как подобное реализовать… У меня тоже через адаптер сделано… Спасибо. :slight_smile:

Да тут и читать ничего не надо. По аналогии с локальной сборкой, clean test выполняется в build секции. А site - в post steps. Все вполне логично.

Репорт публиковать еще “сложнее”:

Причем, это стандартный механизм для абсолютно любого html репорта.
Читать - не перечитать, не так ли? :slight_smile:

3 лайка

Пасиб :slight_smile:

И вроде все ясно, но после рана джобы с такими параметрами:

В результате в target не создается папка /site/allure-maven-plugin
Возможно это потому что в pom нет дополнительных настроек?

<plugin>
    <groupId>ru.yandex.qatools.allure</groupId>
    <artifactId>allure-maven-plugin</artifactId>
    <version>${allure.maven.version}</version>
</plugin>

Да кстати хочется добавить что еще одна причина отказа от Allure плагина в том что почему-то репорты прогона тестов в хроме!! перестали показывать полные результаты… в итоге одно на другое наложилось.

А вы точно в workspace проверяли, что ее нет? Может все таки путь неверный? :wink:
Ну и, к слову, кастомный путь к репортам можно сконфигурировать прямо в плагине.

<reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <version>1.4.24.RC2</version>
                    <reportDirectory>${project.basedir}/../reports</reportDirectory>
                    <properties>
                        <allure.issues.tracker.pattern>https://url/%s</allure.issues.tracker.pattern>
                        <allure.tests.management.pattern>https://url/%s</allure.tests.management.pattern>
                    </properties>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

В итоге все получилось, когда изменил папку отчета в настройках…

            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>${allure.maven.version}</version>
                <configuration>
                    <version>${allure.version}</version>
                    <reportDirectory>${project.build.directory}/reports</reportDirectory>
                </configuration>
            </plugin>

И изменении версии с 1.5.0.RC2 на 1.4.24.RC2 причем что больше повлияло не знаю :slight_smile:

Эта версия мертва. Ее никогда не будет в релизе. На данный момент 1.4.24.RC2 - самая последняя. Причем, после нее будет уже полностью переписанный на Java 8 Allure 2. Скоро должна beta появиться.

Мде…сработало ровно один раз… потом результат такой…

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 51:51 min
[INFO] Finished at: 2016-06-30T08:54:03-07:00
[INFO] Final Memory: 35M/506M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project automation: There are test failures.
[ERROR] 
[ERROR] Please refer to C:\Jenkins\workspace\A-v1-imagenet-T-R-CH\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
Build step 'Invoke top-level Maven targets' marked build as failure
[htmlpublisher] Archiving HTML reports...
[htmlpublisher] Archiving at PROJECT level C:\Jenkins\workspace\A-v1-imagenet-T-R-CH\target\reports to /opt/getty/jenkins/jobs/A-v1-imagenet-T-R-CH/htmlreports/Allure_Report
ERROR: Specified HTML directory 'C:\Jenkins\workspace\A-v1-imagenet-T-R-CH\target\reports' does not exist.
Finished: FAILURE

Соответственно и джобы фейлед и скип…
А все потому что при падении любого теста site не происходит…
Как его втулить в постбилд экшн без понятия %)

Build step ‘Invoke top-level Maven targets’ marked build as failure

Какая галка в настройках-то стоит? Небось первая? :slight_smile:

К слову,

ERROR: Specified HTML directory ‘C:\Jenkins\workspace\A-v1-imagenet-T-R-CH\target\reports’ does not exist.

Папка то создалась? Что-то не похоже. В настройках surefire-plugin что стоит? Где физически ваши результаты testng создаются?

Сдается мне что результаты ложатся в одну папку, а плагину вы говорите смотреть в другую.

В общем либо у меня не стоит какого-то плагина, чтобы можно было запускать в “Послесборочные операции” команды мавена верхнего уровня, либо у тебя не Дженкинс :slight_smile: но что-то подозреваю что и то и другое)
Папки генерятся, если проходит команда site

1 лайк

Т.е. скрины я рисовал в пейнте видимо? :slight_smile:

FYI,

FYI 2, maven-surefire-plugin также позволяет задать reportsDirectory, который благополучно проглатываются html publisher'ом. Если бы путь был везде одинаковый, то как минимум стандартный testng репорт отобразился бы (если конечно слушатели не отключены).

Ну у нас дженкинс мягко говоря старый версия ниже 1.651.3 видимо потому твой пейнт такой крутой :wink:
TestNG резалты есть конечно, но мы их не отображаем ибо привыкли к аллюровской красоте…

Кандишнл степ есть в шагах сборки и там есть дропдаун где можно по результатам просматривать, но site оттуда все равно не пашет, разве что его в surefire plugin поставить игнорить результаты… но тогда мы возвращаемся к вопросу “как сделать джобу нестабильной при этом” :slight_smile:

Вопрос обновления дженкинса еще не рассматривался :slight_smile:

Пора бы обновить, нечего на такой древности висеть. :slight_smile: К тому же, UI там тоже значительно переработали, не нужно теперь скроллить по полтора часа до нужной секции.

Разве что рекомендовал бы на всякий случай config.xml джобов забекапить. У них в каких-то версиях баг был, что xml дропался. А так проблем с апдейтами не замечал.

В общем пока вернули опцию не фейлить тесты в pom.xml и делаем site в билде.
После пары перезапусков вроде как все хорошо :slight_smile:
Плохо что аллюровский плагин не поддерживается… забили?
Ну и попробуем ускорить процесс обновления дженкинса… оказывается таска у девопсов уже есть.

А нужен ли дополнительный плагин, чтобы добавить site как post build step? В списке post build конфигураций нет мавеновской http://joxi.net/D2PGloYfPV40m3