Cucumber Java 7环境下Allure报告生成后无法加载求助
Allure报告无法加载的解决方法(基于Cucumber-Java7+JUnit4+Maven)
环境信息
- 技术栈:Cucumber-java 7、JUnit4、Maven
- pom.xml中Allure相关插件配置:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.5</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.options="--plugin io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm" </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>2.12.0</version> <configuration> <reportVersion>${allure.version}</reportVersion> <resultsDirectory>${project.build.directory}/allure-results</resultsDirectory> </configuration> </plugin>
- 使用的依赖版本:
<dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>7.8.1</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>7.8.1</version> </dependency> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-cucumber7-jvm</artifactId> <version>2.20.1</version> </dependency>
- 问题现象:执行构建后,运行
allure serve allure-results或allure generate allure-results生成报告,打开index.html时出现资源无法加载的情况。
解决方法
1. 统一Allure版本,解决兼容性问题
当前allure-cucumber7-jvm版本为2.20.1,但allure-maven插件用的是2.12.0,版本差异过大易导致兼容性问题:
- 将
allure-maven插件版本升级至2.20.0及以上,与allure.version保持一致 - 检查本地Allure命令行工具版本,执行
allure --version查看,若与依赖版本不一致,下载对应版本替换
2. 修正Surefire插件的Cucumber配置
Cucumber 7.x已弃用cucumber.options参数,推荐使用cucumber.plugin,修改surefire插件的argLine配置:
<argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.plugin="io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm" </argLine>
3. 验证Allure结果目录的有效性
- 执行
mvn clean test后,查看target/allure-results目录下是否生成了json/xml格式的结果文件,若为空,说明测试未正常生成Allure数据,需排查测试执行状态或插件配置 - 使用
allure generate时,添加清理和输出目录参数:allure generate allure-results --clean -o allure-report,生成后进入allure-report目录打开index.html
4. 规避本地HTML的跨域限制
直接打开本地index.html会因浏览器跨域策略导致资源加载失败:
- 优先使用
allure serve allure-results命令,该命令会启动本地服务托管报告,直接访问命令输出的本地URL即可 - 若需本地打开,可使用Python启动简易HTTP服务器:进入
allure-report目录,执行python -m http.server 8080,然后访问http://localhost:8080
5. 确保AspectJ版本兼容
在pom.xml中定义稳定的AspectJ版本,建议使用1.9.8及以上,同时指定Surefire插件版本:
<properties> <aspectj.version>1.9.8</aspectj.version> <maven-surefire-plugin.version>3.0.0-M7</maven-surefire-plugin.version> <allure.version>2.20.1</allure.version> </properties>
内容的提问来源于stack exchange,提问作者ansh87
相关产品推荐
相关产品推荐

