我正在尝试将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
依赖关系是必要的。只是为了排除它我只尝试在插件部分和同样的问题。
有什么想法吗?
答案 0 :(得分:1)
您可能正在使用自定义aop.xml
配置文件,这些文件将Allure方面排除在编织之外。确保weaver配置中包含io.qameta.allure
包