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

allure jenkins plugin не находит result directories

maven
allure
java
testng
Теги: #<Tag:0x00007f7b61066920> #<Tag:0x00007f7b610667e0> #<Tag:0x00007f7b610666a0> #<Tag:0x00007f7b61066560>

(Анна Соловьева) #1

Существует проект (java+maven+testng), где в качестве отчётов используется allure.
В IDEA всё работает: тесты запускаются и по цели site генерируется отчет.
В Jenkins без allure plugin тоже всё работает и отчет выдается, но в довольно кривом виде. Поэтому хочется использовать специальный плагин.

Однако, при использовании плагина в консоль выдается следующее:

 [INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.
[INFO] Generating "Allure" report    --- allure-maven-plugin:2.0
[INFO] Report Version: 1.4.10
[INFO] Results Pattern: **/allure-results
[INFO] Found [1] results directories by pattern [**/allure-results]
[INFO] Generate report to E:\QA\AutoTests\target\site\allure-maven-plugin
[INFO] Report data generated successfully. Unpack report face...
[INFO] Report unpacked successfully.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving E:\QA\AutoTests\pom.xml to ExampleTests/Example/1.0Examplel-1.0.pom
channel stopped
Allure Report Generation: started
Allure Report Generation: find directories by mask [**/allure-results]
Allure Report Generation: found allure result directories []
Allure Report Generation: can't find allure results directories
Build step 'Allure Report Generation' marked build as failure 

То есть цель site выполняется корректно и все директории найдены, а плагин не хочет их находить…

В Jenkins указано
Default Results Directories **/allure-results
Default Report Version 1.3.9 (пробовала и другие)

Очень хочется получать красивую иконку в Jenkins =)


(Александр Шиповалов) #2

А какие другие? Попробуйте, ту - которая у вас прописана в pom.xml. То есть насколько я вижу 1.4.10. Ну и при этом убедитесь, что плагин тоже обновлен.


(Анна Соловьева) #3

версия плагина самая свежая 2.6
Report Version 1.4.10 пробовала - результат тот же.


(Александр Шиповалов) #4

Может быть у Дженкинса не хватает прав на создание директории? Вообще же директория /allure-results у меня создается как минимум после одного пройденного теста - спасибо AspectJ


(Анна Соловьева) #5

Если сделать site, то html отчеты появляются в директории Jenkins (в конкретной Job), значит прав хватает. Может result directory для allure где-то в другом месте или нужны какие-то дополнительные права?

На просторах этого сайта нашла совет для похожей проблемы. Но по правде, я не поняла, что нужно сделать…


(Maksim Smolyakov) #6

Точно такая же ошибка у меня возникала, как раз когда в Results Directories стояло значение по умолчанию (**/allure-results). Попробуйте в настройках сборки, которую запускаете, поменять значение Results Directories на target


(Анна Соловьева) #7

пробовала менять, не вышло=(


(Maksim Smolyakov) #8

тогда дальше не обойтись без содержимого pom.xml и настроек сборки.


(Анна Соловьева) #9

Вот мой pom:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- versions-->
    <allure.version>1.4.10</allure.version>
    <mvn_compiler.version>3.2</mvn_compiler.version>
    <maven-release-plugin.version>2.5.1</maven-release-plugin.version>
    <maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version>
    <testng.version>6.8.21</testng.version>
    <compiler.version>1.7</compiler.version>
    <aspectj.version>1.8.5</aspectj.version>
    <ENV>**/*Test.java</ENV>

</properties>
<build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
        <resource>
            <directory>src</directory>
            <excludes>
                <exclude>**/*.java</exclude>
            </excludes>
        </resource>
    </resources>
    <plugins>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${mvn_compiler.version}</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin.version}</version>
            <configuration>
              <!-- <properties>
                    <property>
                        <name>listener</name>
                        <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                    </property>
                </properties>-->
                <reportsDirectory>${basedir}/test-output</reportsDirectory>
                <testFailureIgnore>false</testFailureIgnore>
                <argLine>
                    -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                </argLine>
                <suiteXmlFiles>
                    <suiteXmlFile>testng.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>${aspectj.version}</version>
                </dependency>
            </dependencies>
          </plugin>
    </plugins>
</build>
<profiles>
    <profile>
        <id>application</id>
        <properties>
            <baseURL>${ENV}</baseURL>
        </properties>
    </profile>
</profiles>
<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.4</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
    </dependency>

    <!-- logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>

    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>uk.org.lidalia</groupId>
        <artifactId>sysout-over-slf4j</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.7</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>1.7.7</version>
    </dependency>
    <!-- web driver -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.45.0</version>
    </dependency>
   <!-- <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.45.0</version>
    </dependency> -->
    <dependency>
        <groupId>com.opera</groupId>
        <artifactId>operadriver</artifactId>
        <version>1.5</version>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <!-- testNG -->
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>${testng.version}</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>${allure.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-java-annotations</artifactId>
        <version>${allure.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
<reporting>
    <excludeDefaults>true</excludeDefaults>
      <plugins>
        <plugin>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.0</version>
        </plugin>
    </plugins>
</reporting>

Настройки относительно allure в jenkins:


(Maksim Smolyakov) #10

покажите еще раздел в настройках сборки, где обращаетесь к maven, и как указан путь к pom.xml


(Анна Соловьева) #11


(Maksim Smolyakov) #12

Некрасивое решение, но попробуйте в Results Directories вставить значение E:\QA\AutoTests\target

Если бы у Вас путь к корневому POM был просто pom.xml, то в Results Directories сработало бы значение target


Allure TeamCity plugin - Отображается Пустой репорт
(Анна Соловьева) #13

Пробовала по-всякому, и полный путь в том числе…
Тут есть ещё одна проблема, что site формирует только pass отчёты (именно в jenkins) . Вот я и бьюсь с плагином.


(Александр Шиповалов) #14

Странно вроде бы начиная с версии 1.4, Allure не использует механизм Listener TestNG. Попробуйте удалить ее.


(Ilya Slabiy) #15

Столкнулся с аналогичной проблемой, очень нужна помощь.

Ожидаю пока Jenkins закончит сбор данных
[JENKINS] Archiving C:\Users\CMG_TEST\Desktop\contentmart-autotests\pom.xml to Positive_Smoke/dev_contentmart/1.0-SNAPSHOT/dev_contentmart-1.0-SNAPSHOT.pom
[JENKINS] Archiving C:\Users\CMG_TEST\Desktop\contentmart-autotests\target\dev_contentmart-1.0-SNAPSHOT.jar to Positive_Smoke/dev_contentmart/1.0-SNAPSHOT/dev_contentmart-1.0-SNAPSHOT.jar
channel stopped

Allure Report Generation: started
Allure Report Generation: find directories by mask [**/allure-results]
Allure Report Generation: found allure result directories []
Allure Report Generation: can’t find allure results directories
Build step ‘Allure Report Generation’ marked build as failure
Finished: FAILURE

В настройках Jenkins всё стоит по умолчанию:
Скрин: http://prntscr.com/8kawv7

В настройках проекта тоже:
Скрин: http://prntscr.com/8kay1d

POM.xml:

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>Positive_Smoke</groupId>
<artifactId>dev_contentmart</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
    <allure.version>1.4.18</allure.version>
    <allure.results.directory>${project.build.directory}/allure-results</allure.results.directory>
    <aspectj.version>1.8.4</aspectj.version>
</properties>
<dependencies>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>${allure.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.47.1</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>2.47.1</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.9.6</version>
    </dependency>
    <dependency>
        <groupId>ru.stqa.selenium</groupId>
        <artifactId>webdriver-factory</artifactId>
        <version>1.1.46</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-support</artifactId>
        <version>2.45.0</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>2.21</version>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-core</artifactId>
        <version>1.3</version>
    </dependency>
</dependencies>

<name>Allure TestNg contentmart.in suite</name>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <testFailureIgnore>false</testFailureIgnore>
                <argLine>
                    -javaagent:"${settings.localRepository}\org\aspectj\aspectjweaver\${aspectj.version}\aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <systemProperties>
                    <property>
                        <name>allure.results.directory</name>
                        <value>${allure.results.directory}</value>
                    </property>
                </systemProperties>
                <suiteXmlFiles>
                    <suiteXmlFile>TestNG.xml</suiteXmlFile>
                </suiteXmlFiles>
            </configuration>
        </plugin>
    </plugins>
</build>

<reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>
        <plugin>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <allureResultsDirectory>${allure.results.directory}</allureResultsDirectory>
                <resultsPattern>${project.build.directory}/allure-results</resultsPattern>
                <reportVersion>1.3.9</reportVersion>
            </configuration>
        </plugin>
    </plugins>
</reporting>