NoSuchMethodError при использовании аннотации @Step в Allure2
Я пытаюсь внедрить Allure2 в качестве инструмента отчетности для нашего пакета автоматизации, но, похоже, у меня возникла проблема с @Step
аннотаций.
У меня есть импорт на месте, IDE распознает его отлично, я вижу пакет под зависимостями, и конкретный класс доступен для просмотра, и все кажется правильным, но когда я пытаюсь запустить тест, я получаю эту ошибку:
java.lang.NoSuchMethodError: io.qameta.allure.aspects.StepsAspects.aspectOf()Lio/qameta/allure/aspects/StepsAspects;
Если я удалю @Step
аннотация все работает отлично, включая отчет.
Поискив вокруг всего, что я смог найти, было то, что эта та же самая проблема, казалось, была решена во время бета-тестирования, и я использую последнюю версию на сегодня. У меня также есть это реализовано в другом проекте, и он отлично работает с теми же версиями, но даже после просмотра обоих pom.xml
файлы, которые я не могу понять, где я мог облажаться.
Вот соответствующие биты моих настроек pom.
<properties>
<!--DEPENDENCIES VERSIONS-->
<allure2.version>2.6.0</allure2.version>
<allure.maven.version>2.9</allure.maven.version>
<maven.surefire.plugin.version>2.19.1</maven.surefire.plugin.version>
<aspectj.version>1.9.1</aspectj.version>
</properties>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>${allure2.version}</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>${allure.maven.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
<exclusion>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
</exclusion>
</exclusions>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<systemPropertyVariables>
<allure.directory>${project.build.directory}/allure-results</allure.directory>
<allure.results.directory>${project.build.directory}/allure-results</allure.results.directory>
</systemPropertyVariables>
<suiteXmlFiles>
<suiteXmlFile>testng-run.xml</suiteXmlFile>
</suiteXmlFiles>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>${allure.maven.version}</version>
<configuration>
<properties>
<allure.issues.tracker.pattern>######################</allure.issues.tracker.pattern>
<allure.tests.management.pattern>#######################</allure.tests.management.pattern>
</properties>
</configuration>
</plugin>
Я не думаю, что указав allure-maven
зависимость в обоих местах необходима. Просто чтобы исключить это, я пробовал с этим только в разделе плагинов и той же самой проблеме.
Какие-нибудь мысли?.
1 ответ
Вы, вероятно, используете обычай aop.xml
файл конфигурации, который исключает аспекты Allure из ткачества. Убедитесь, что пакет io.qameta.allure
включен в конфигурацию ткача