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

[Resolved] Allure, подхватывает имя сьюта из testng.xml


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

Добрый день, коллеги. Собственно при переходе на версию 1.4 Allure, возникла следующая проблема. Если я по коду расставлю аннотации @Features и @Story. То на закладке Behaviors отчета, помимо разбиения по этим критериям, так же возникнет новая строка например Test Suite, имя которой подгружается из файла testng.xml. Собственно говоря там дублируется вся информация, которая порой очень сбивает с толку моих менеджеров. Кто нибудь сталкивался с такой проблемой и самое важное кто то знает способ ее решения.


(sidelnikovmike) #2

Думаю @vania_pooh может помочь


(vania-pooh) #3

Мы долго и упорно бьемся с TestNG адаптером для Allure, т.к. из-за чрезмерного большого количества фичей (в том числе testng.xml) и странноватого API пока не удается сделать такой код, чтобы ни у кого не было проблем. Вот класс адаптера: https://github.com/allure-framework/allure-core/blob/master/allure-testng-adaptor/src/main/java/ru/yandex/qatools/allure/testng/AllureTestListener.java Пожалуйста посмотрите и, если что-то не так, - присылайте pull-request с исправлениями. Тут кстати недавно вышла версия 1.4.1 - можете попробовать обновиться до нее, вдруг уже исправили вашу проблему.


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

Насколько я понимаю в maven central ее еще нет?


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

Обновился…теперь при выполнении mvn site

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Report data generated successfully. Unpack report face...
[INFO] Report unpacked successfully.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:16 min
[INFO] Finished at: 2014-09-15T16:20:02+07:00
[INFO] Final Memory: 20M/90M

Единственное криминальное, что вижу в консоли

[WARNING] No project URL defined - decoration links will not be relativized!

При открытии файла allure-maven-plugin.html. Выдается сообщение, что
Firefox не может найти файл …/target/site/allure-maven-plugin/index.html.
Все чудесатее и чудесатее


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

C этим разобрался. Но увы с обновлением до версии 1.4.1 - ошибка означенная в шапке темы, не ушла(


(sidelnikovmike) #7

А можете как-то скинуть пример проекта? Как воспроизвести данную ошибку?


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

Все ошибка эта ушла, я про пустой index.html
У меня еще с довольно таки древних времен - было записано

        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-maven-plugin</artifactId>
        <version>2.0</version>
        <<configuration>
            <<outputDirectory>target/surefire-reports/</outputDirectory>
            <!--<allureResultsDirectory>target/allure-results</allureResultsDirectory>
        </configuration>

Убрал эти ненужные configuration - все ушло. Осталась проблема с именем сьюта из testng.xml


(sidelnikovmike) #9

Если кинете пример - я бы подебажил, поглядел, может дело в алаптере.


(heartwilltell) #10

Присоединяюсь к проблеме - использую testng.xml для того что бы паралелить тесты.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="classes" thread-count="10">
    <test name="Test">
        <classes>
            <class name="projects.someproject.Class1"/>
            <class name="projects.someproject.Class2"/>
            <class name="projects.someproject.Class3"/>
            <class name="projects.someproject.Class4"/>
            <class name="projects.someproject.Class5"/>
        </classes>
    </test>
</suite>

вот 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>some-framework</groupId>
    <artifactId>some-framework</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--
        mvn versions:display-dependency-updates - scans a project's dependencies and produces a report of those dependencies which have newer versions available.
        mvn versions:display-plugin-updates - scans a project's plugins and produces a report of those plugins which have newer versions available.
    -->

    <properties>

        <!-- Dependencies Versions -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <compiler.version>1.8</compiler.version>
        <selenium.version>2.44.0</selenium.version>
        <allure.version>1.4.4</allure.version>
        <browsermob.version>2.0-beta-9</browsermob.version>
        <ashot.version>1.4.3</ashot.version>
        <aspectj.version>1.8.4</aspectj.version>
        <webdriver-factory.version>1.1.43</webdriver-factory.version>
        <htmlelements.version>1.12</htmlelements.version>
        <google-guava.version>18.0</google-guava.version>

        <!-- Plugin Versions -->
        <maven-archetype-plugin.version>2.2</maven-archetype-plugin.version>
        <maven-source-plugin.version>2.2.1</maven-source-plugin.version>
        <maven-javadoc-plugin.version>2.9</maven-javadoc-plugin.version>
        <versions-maven-plugin.version>2.1</versions-maven-plugin.version>
        <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
        <maven-release-plugin.version>2.5.1</maven-release-plugin.version>

        <!-- My System Properties -->
        <webdriver.driver>chrome</webdriver.driver>
        
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8.8</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-testng-adaptor</artifactId>
            <version>${allure.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-report-data</artifactId>
            <version>${allure.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.0</version>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.ashot</groupId>
            <artifactId>ashot</artifactId>
            <version>${ashot.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.seleniumhq.selenium</groupId>
                    <artifactId>selenium-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectj.version}</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>${selenium.version}</version>
        </dependency>

        <dependency>
            <groupId>ru.stqa.selenium</groupId>
            <artifactId>webdriver-factory</artifactId>
            <version>${webdriver-factory.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-java</artifactId>
            <version>1.12</version>
        </dependency>

        <dependency>
            <groupId>net.lightbody.bmp</groupId>
            <artifactId>browsermob-proxy</artifactId>
            <version>${browsermob.version}</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>18.0</version>
        </dependency>

    </dependencies>

    <build>
        <pluginManagement>
            <plugins>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${compiler.version}</source>
                        <target>${compiler.version}</target>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                    <configuration>
                        <testFailureIgnore>false</testFailureIgnore>
                        <argLine>
                            -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                        </argLine>
                        <properties>
                            <property>
                                <name>listener</name>
                                <value>ru.yandex.qatools.allure.testng.AllureTestListener</value>
                            </property>
                        </properties>
                        <suiteXmlFiles>
                            <suiteXmlFile>testng.xml</suiteXmlFile>
                        </suiteXmlFiles>
                        <systemPropertyVariables>
                            <webdriver.driver>${webdriver.driver}</webdriver.driver>
                        </systemPropertyVariables>
                    </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-site-plugin</artifactId>
                    <version>3.4</version>
                </plugin>

            </plugins>
        </pluginManagement>
    </build>

    <repositories>
        <repository>
            <id>oss.sonatype.org</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
    </repositories>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>

            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <resultsPattern>**/allure-results</resultsPattern>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>${versions-maven-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependency-updates-report</report>
                            <report>plugin-updates-report</report>
                            <report>property-updates-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>

        </plugins>
    </reporting>


</project>

в репорте в разделе xUnit отображается Total: 2 test suites, 128 test cases хотя тестов всего 60
ну и отображается 2 строки с Suite : Test которые дублируют друг друга.

В идеале хотелось бы что бы если стоит паралелизация по классам - то что бы оно каждый класс как сюит отображало, но для начала было бы не плохо что бы оно не дублировалось хотябы


(Sergey Korol) #11

Насколько я правильно помню, есть у TestNG грешок запуска некоторых методов дважды. Посему, нужно ручками хэндлить этот момент. Т.е. баг тут не в Allure, а скорее в TestNG. Подключите интереса ради логирование вызовов методов листенера / других аннотированных TestNG аннотациями.

Кстати еще, помимо всего прочего, будьте аккуратны с параметром кол-ва потоков / типа параллелизации. При неправильной конфигурации, цифры в результатах могут быть довольно интригующими. Хотя, конечно многое еще зависит и от архитектуры вашего фреймворка.


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

Я почему заподозрил Allure, потому, что проблема появилась при обновлении с версии 1.3.9 на 1.4. Поэтому сидел на ней, недавно попробовал сразу махнуть на 1.4.4 - этой проблемы не наблюдается.


(Sergey Korol) #13

Ну может разработчики пофиксили листенер, либо версия testng была баговой. Либо вы несколько изменили архитектуру. Вариантов может быть множество.


(heartwilltell) #14

Разобрался, ошибка была в pom.xml дело в том что после версии 1.4 они начали подключать свой лиснер как сервис лоадер, соответственно его присутствие в поме было избыточным, отсюда и дубляж 2 раза, я завтыкал прочитать патчноты и просто обновил версию :slight_smile:


(Sergey Korol) #15

Сообщение перенесено в новую тему: Возникает ошибка при открытии репорта


(Sergey Korol) #16