t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

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

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

Мы долго и упорно бьемся с 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 - можете попробовать обновиться до нее, вдруг уже исправили вашу проблему.

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

Обновился…теперь при выполнении 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.
Все чудесатее и чудесатее

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

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

Все ошибка эта ушла, я про пустой 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

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

Присоединяюсь к проблеме - использую 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 которые дублируют друг друга.

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

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

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

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

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

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

2 Симпатий

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