allure+testng遇到的一些问题
java+testng+allure
听说allure报告,"很好看",决定引入。
首先看allure官网,需要在pom.xml中引入包
文档:https://docs.qameta.io/allure#_testng
按照说明,引入后

之后再执行mvn clean test这个之后再执行allure serve target/allure-results(基本配置maven,allure包解压之后,配置环境变量,重启!mvn和allure命令才能用,不再详细说明)
哎,问题来了,首先mvn clean test就报错了:
Error:(4, 30) java: 无法访问org.testng.annotations.Test
错误的类文件: ***********\org\testng\testng\7.6.0\testng-7.6.0.jar(org/testng/annotations/Test.class)
类文件具有错误的版本 55.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
翻译之后如上,然后经调查发现,是自己顺手改了一个testng的版本号。。想用最新版,改成了7.6.0,愁人
原因:jdk版本和testng使用的jdk版本不统一。testng版本 7.6官网显示是JDK11以上版本才可用。我本地用的还是jdk8
改回使用低版本的testng 6.14.3,不报错了,开心,然后就继续执行allure serve target/allure-results,哎,一瞬间挺开心的,因为我看到浏览器自动打开了一个html
哇,神奇,but,,,显示的是NaN%,一碗冷水下肚,嗝儿~~
好吧,继续探索
首先问自己,这个命令行啥意思,allure serve是生成并打开的意思,还有一个命令行allure generate 是生成报告
那么,很显然allure serve target/allure-results,后半部分,就是读哪个路径的数据target/allure-results,很显然,我回去瞧了一眼,果然,哪里有个这个文件夹的影子。。
好吧,找到原因之后,应该是报告或者数据存储的路径没有配置,好的,pom.xml加上allure.results.directory的配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>./target/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
然后再重新执行mvn clean test
发现项目下生成了target/allure-results目录,留下了感动的泪水
好的,再次满怀希望执行allure serve target/allure-results,哇,好的,数据有了,开心。
记录一下pom.xml文件
<aspectj.version>1.8.10</aspectj.version>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.6.0</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<testFailureIgnore>false</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>./target/allure-results</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>

浙公网安备 33010602011771号