Отчет Allure формируется без шагов (testng)

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

<?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>autotests</groupId>
    <artifactId>autotests</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <path.chrome>chromedriver.exe</path.chrome>
        <browser>chrome</browser>
    </properties>
<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>4.5.1</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>1.5.4</version>
    </dependency>
</dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <systemPropertyVariables>
                        <browser>${browser}</browser>
                    </systemPropertyVariables>
                    <argLine>-Dselenide.baseUrl="http://google.com"</argLine>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>2.8</version>
            </plugin>
        </plugins>
    </reporting>
</project>

Степов нет, т.к. у вас не подключен aspectjweaver - агент, который помогает слушать все события Allure и собирать нужную информацию для репорта. Ну точнее, без него не работают аспекты, отвечающие за сбор информации.

Плюс ко всему, рекомендую все же обновиться до второй версии Allure.

Всю нужную информацию можно найти в официальной документации.

добавила aspectjweaver, но проблема все равно осталась

<?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>autotests</groupId>
    <artifactId>autotests</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <path.chrome>chromedriver.exe</path.chrome>
        <browser>chrome</browser>
        <aspectj.version>1.8.9</aspectj.version>
        <allure.version>{latest-allure-version}</allure.version>
    </properties>
<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.21</version>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.codeborne</groupId>
        <artifactId>selenide</artifactId>
        <version>4.5.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>1.5.4</version>
    </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-testng</artifactId>
            <version>2.0-BETA17</version>
            <scope>test</scope>
        </dependency>
    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-maven-plugin</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.8.9</version>
    </dependency>
</dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12.4</version>
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                    <systemPropertyVariables>
                        <browser>${browser}</browser>
                    </systemPropertyVariables>
                    <argLine>-Dselenide.baseUrl=http://google.com</argLine>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>2.8</version>
                <configuration>
                    <reportVersion>2.0.1</reportVersion>
                  </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>

Ваша проблема в том, что вы вставляете в pom.xml все подряд, даже не разобравшись в том, зачем это нужно, как его использовать и какие версии - актуальны на текущий момент.

Пройдитесь по каждой зависимости, обновите версии, не лепите test scope везде, где где придется, избавьтесь от конфликтов. Зачем вам 2 версии TestNG адаптера? Зачем вам 2 Allure плагина?

В качестве примера можете использовать следующий проект:

В нем подключены все необходимые зависимости для работы с Allure 2. Хоть и не самые актуальные версии, но все же… Но опять-таки, не стоит бездумно копипастить все подряд. Лучше выделите больше времени на понимание основ работы с maven’ом, чтобы избежать подобных проблем в будущем. :wink:

1 лайк

У них сейчас на второй версии в BETA есть пока баги :slight_smile: К примеру skip тесты не отображаются в отчетах и прочее. Наверное стоит подождать уже релиза, людям, которые впервые сталкиваются с Allure. Я же конечно уже интеграроивал и осваиваю.

Уберите вот это:

    <dependency>
        <groupId>ru.yandex.qatools.allure</groupId>
        <artifactId>allure-testng-adaptor</artifactId>
        <version>1.5.4</version>
    </dependency>

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

и дельный вам совет дали не лепит. test scope везде, и:

Пройдитесь по каждой зависимости, обновите версии, не лепите test scope везде, где где придется, избавьтесь от конфликтов. Зачем вам 2 версии TestNG адаптера? Зачем вам 2 Allure плагина?

Версия самого репорта уже давно не бета. А если речь об адаптерах (с BETA суфиксом), то их стоит рассматривать индивидуально, без обобщений. Баги везде разные. Где-то покрытие лучше, где-то хуже. К тому же, разработчики официально саппортят только JUnit и TestNG. Остальные адаптеры - community driven.

Применительно к TestNG, skipped тесты нормально отображаются в отчетах.

Если только начинаете писать тесты я бы вам рекомендовал вместо maven использовать gradle Gradle | Gradle Guides, всё гораздо проще, быстрее и поддержка легче в дальнейшем

1 лайк

Да ну как это? Даже если в вашем примере отключить тест, сделать его skipped, то он не отображается в отчете. Также само и в моих тестах. При чем я пробовал и отключать через аннотацию и через transform listener. И версии у меня довольно свежие. Если что-то делаю не так, буду признателен за помощь в этом вопросе.

Я использую:

<plugin>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-testng</artifactId>
            <version>2.0-BETA17</version>
        </dependency>

                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>2.8</version>
                <configuration>
                    <reportVersion>2.3.4</reportVersion>
                </configuration>
            </plugin>

Ну так мы говорим о разных вещах. Skipped статус придуман не для отключенных, а для упавших по причине конфигурационных проблем тестов, или их зависимостей.

Если, к примеру, зафейлить конфигурационный метод, такой тест отобразится в репорте, как skipped. Отключенные тесты раньше отображались, как Pending. Теперь же думают, что с ними делать.

Ну смотрите. Я вот только что добавил Allure 1.5 на свой проект и сделал там тест выключенным (у меня в проекте некоторые тесты отключаются аннотацией через transform. Эта аннотация ставит аннотации @test(enabled=false)), он отобразился как skipped (серенький). Тесты которые упали по причине конфигурацонных проблем тестов и т.д. - падали как broken, раньше, если мне память не изменяет.

У testng-adaptor первой версии прописана вполне конкретная логика насчет disabled тестов.

Где собственно и тригерится TestCasePendingEvent. Почему у вас тесты при этом маркируются, как skipped - понятия не имею. Но и копаться в древних версиях совершенно не хочется.

Я даже когда-то issue заводил по этому поводу, ибо disabled тесты портили всю статистику в репорте.

Как бы то ни было, во второй версии уже заведен issue на эту тему. Но исходя из того, что я видел в чате разработчиков, пока еще не принято окончательное решение насчет наиболее подходящего статуса.

Да я видел там это, собственно поэтому пока и не обновляюсь до конца.

проблема была в повторном использовании <argLine> для плагина maven-surefire-plugin. необходимо было их объединить:

 <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dselenide.baseUrl=http://google.com
                    </argLine>