Maven / TestNg не может найти аннотацию allure @step

Возникла проблема с внедрением аннотации allure @Step в мой проект maven (tetsng, java).

(Обновлено) Совместное использование файла pom:

eproject 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>src</groupId>
<artifactId>AutomationTestSuit</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.11.0</version>
    </dependency>

     <dependency>
         <groupId>org.testng</groupId>
         <artifactId>testng</artifactId>
         <version>6.14.2</version>
         <scope>test</scope>
     </dependency>

    <dependency>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-testng</artifactId>
        <version>2.6.0</version>
    </dependency>

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>

</dependencies>



<build>
    <resources>
        <resource>
            <directory>src\main\resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

    <testResources>
        <testResource>
            <directory>src\test\resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>


    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.21.0</version>

            <configuration>
                <suiteXmlFiles>
                    <file>${project.basedir}/suites/smoke.xml</file>
                </suiteXmlFiles>

                <systemPropertyVariables>
                    <environment.properties>/environment.properties</environment.properties>
                </systemPropertyVariables>

                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/1.9.1/aspectjweaver-1.9.1.jar"
                </argLine>
            </configuration>

            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjweaver</artifactId>
                    <version>1.9.1</version>
                </dependency>
            </dependencies>
        </plugin>


        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>e

Я пытаюсь добавить аннотацию Step к классу страницы, но не получается:

package com.pages.login_page;


import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
import org.openqa.selenium.support.PageFactory;


public class LoginPageElements {

private WebDriver driver;


@FindBy(how = How.ID, using = "test")
private WebElement logonID;

@FindBy(how = How.ID, using = "test")
private WebElement logonPassword;

@FindBy(how = How.ID, using = "test")
private WebElement logonSubmit;


public LoginPageElements(WebDriver driver)
{
    this.driver = driver;
    PageFactory.initElements(driver,this);
}

@Step("login step") //step is underlined on this place with can't resolve symbol Step error

public void Login_as(String sUsername, String sPassword) {
        logonID.sendKeys(sUsername);
        logonPassword.sendKeys(sPassword);
        logonSubmit.click();
}

Пример ошибки @Step

та же проблема, что и у меня с @Attachments при ее реализации внутри класса MytestListener:

см. скриншот

Пожалуйста, помогите мне разобраться в проблеме.

Не удалось выполнить цель org.apache.maven.plugins
Не удалось выполнить цель org.apache.maven.plugins
Опишу, что когда я только начинал изучать Maven, у меня не получалось компилировать и упаковывать.
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
0
0
1 525
3

Ответы 3

Я заметил, что вы используете устаревшую версию Allure. Вот правильный импорт

<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-testng -->
<dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-testng</artifactId>
    <version>2.6.0</version>
</dependency>

В Allure 2 вам не нужно настраивать Listener, но вместо этого вам нужно настроить AspectJ. Здесь вы можете найти пример для Maven + TestNG: https://docs.qameta.io/allure/#_testng

Обновлен до 2.6.0 и добавлена ​​зависимость aspectj с версией 1.9.1, компиляция работает хорошо. Отчет сформирован, но с любыми результатами. аннотации шагов по-прежнему не работают.

Y_Sh 08.06.2018 20:47

@Y_Sh можешь поделится пом с изменениями?

Dmitry Mayer 08.06.2018 22:56

@Y_Sh и какой JDK установлен в системе?

Dmitry Mayer 08.06.2018 22:57

JDK - 1,8. Обновил pom.xml, пожалуйста, посмотрите

Y_Sh 11.06.2018 15:40

теперь выглядит нормально, как вы составляете отчет?

Dmitry Mayer 11.06.2018 15:53

с помощью команды ниже "allure serve target / allure-results". Страница отчета открыта, но нет данных: отчет Allure неизвестен, 0 тестовых случаев, нет костюмов и т. д.

Y_Sh 11.06.2018 15:59

у вас есть target/allure-results, созданный после выполнения теста? afaik, в адаптерах Java по умолчанию allure-results сгенерирован в корне проекта

Dmitry Mayer 11.06.2018 16:01

чтобы изменить место хранения allure-results, создайте src/test/resources/allure.properties с одной строкой allure.results.directory=target/allure-results

Dmitry Mayer 11.06.2018 16:02

да, после тестового прогона он генерирует target / allure-results. Я только что обновил allure.properties одной строкой, и отчет наконец-то заработал!

Y_Sh 11.06.2018 16:07

НО аннотация @Step не подошла к классам страниц.

Y_Sh 11.06.2018 16:12

Большой! На один шаг ближе. Если @Steps и / или @Attachmetns отсутствуют в отчете, это обычно означает, что есть проблема с AspectJ или JDK. Allure поддерживает только JDK до 1.8. Из какого пакета импортируется @Step?

Dmitry Mayer 11.06.2018 16:17

они не пропали в отчете. Фактически невозможно реализовать эту аннотацию через класс. LoginPageElements из примера. (SRC / главная / страницы)

Y_Sh 11.06.2018 16:23

Извините, я не понял, в чем проблема. Вы не можете импортировать @Step, или он не отображается в отчете, или ... что означает «невозможно реализовать»?

Dmitry Mayer 11.06.2018 16:27

Добавлен скриншот с примером ошибки Step - так он выглядит, когда я добавляю аннотацию Step над методом внутри класса страницы.

Y_Sh 11.06.2018 16:35

вы можете добавить этот импорт в класс? import io.qameta.allure.Attachment; import io.qameta.allure.Step;

Dmitry Mayer 11.06.2018 16:37

Сделал это, но есть "не удается разрешить символ io", и оба импорта неактивны,

Y_Sh 11.06.2018 16:44

по какой-то причине IDE не может видеть зависимости, установленные в Maven pom.xml

Dmitry Mayer 11.06.2018 16:45

@Y_Sh что это за IDE? Я вижу на скриншоте, что он предлагает возможность добавить зависимость Maven. Попробуйте добавить allure-testng с помощью этого диалогового окна IDE

Dmitry Mayer 11.06.2018 17:27

2018.1.2 Community Edition. Нет результата при поиске allure-testng в этом диалоговом окне. Похоже, что зависимости не существует.

Y_Sh 11.06.2018 18:46

в IDEA вам также необходимо установить плагин Maven Integration, чтобы иметь возможность управлять зависимостями через pom.xml

Dmitry Mayer 12.06.2018 09:39

ПРОБЛЕМА была с версией сообщества идей. Похоже, что он не поддерживает плагин aspectj. Если кто-то будет бороться с той же проблемой, пожалуйста, расскажите о взгляде: https://www.jetbrains.com/help/idea/java-compiler.html

В моем случае проблема была в <scope>test</scope>. Я снял его с зависимости:

 <dependency>
    <groupId>io.qameta.allure</groupId>
    <artifactId>allure-testng</artifactId>
    <version>LAST_VERSION</version>
    <scope>test</scope>
</dependency>

и аннотация @Step начинает распознаваться.

Другие вопросы по теме