Cucumber 7环境下Allure生成空报告问题求助
解决Allure+Cucumber7空报告问题
问题排查与修复要点:
1. 清理重复的版本定义
你的properties块里重复定义了allure版本,会导致依赖版本混乱:
<allure>2.20.0</allure> ... <allure>2.20.1</allure>
改成统一命名的单一版本:
<allure.version>2.20.1</allure.version>
所有原${allure}的引用替换为${allure.version}
2. 移除Cucumber依赖冲突
同时引入cucumber-junit-platform-engine和cucumber-junit会引发运行器冲突——你用的是JUnit 5(junit-bom为5.9.2),只需保留cucumber-junit-platform-engine,直接删除cucumber-junit依赖。
3. 修正Allure插件配置方式
Cucumber 7+不再推荐-Dcucumber.options,改用-Dcucumber.plugin,且插件全类名要准确。另外把allure-cucumber7-jvm的scope设为test(仅测试阶段需要):
- 调整依赖:
<dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-cucumber7jvm</artifactId> <version>${allure.version}</version> <scope>test</scope> </dependency>
- 修正surefire插件的
argLine:
<argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.plugin="io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm" </argLine>
4. 升级Surefire插件版本
你当前用的3.0.0-M8是预览版,换成稳定版3.2.5避免兼容问题。
5. 验证结果目录
执行mvn clean test后,检查target/allure-results目录是否有.json/.xml文件生成——如果没有,说明插件未生效,回头检查前面的配置。
修复后的核心配置片段:
Properties块
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <selenium.version>4.7.2</selenium.version> <selenide>6.11.0</selenide> <allure.version>2.20.1</allure.version> <lombok>1.18.24</lombok> <slf4j.version>2.0.0-alpha6</slf4j.version> <rest.assured>5.1.1</rest.assured> <cucumber.version>7.11.1</cucumber.version> <aspectj.version>1.9.9</aspectj.version> </properties>
Dependencies块
<dependencies> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit-platform-engine</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-cucumber7-jvm</artifactId> <version>${allure.version}</version> <scope>test</scope> </dependency> </dependencies>
Surefire插件
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <argLine> -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar" -Dcucumber.plugin="io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm" </argLine> </configuration> <dependencies> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> </dependencies> </plugin>
验证流程:
- 执行
mvn clean test,确认target/allure-results下有测试结果文件 - 运行
mvn allure:serve,检查报告是否正常生成
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
相关产品推荐

