运行Test Runner类报错:java.lang.NoClassDefFoundError: gherkin/formatter/Reporter
解决Java.lang.NoClassDefFoundError: gherkin/formatter/Reporter问题
这个错误我之前帮不少开发者处理过,本质是JVM在运行时找不到gherkin.formatter.Reporter类,结合你的pom配置来看,问题出在两个核心点上:
问题分析
- Cucumber与cucumber-extentsreport版本不兼容
你用的cucumber-extentsreport:3.0.1是专门适配Cucumber 3.x版本的,但当前项目依赖的是Cucumber 4.2.2,版本不匹配导致依赖的gherkin类无法被正确加载。 - extentreports依赖的scope设置不合理
extentreports:3.0.7的scope被设为provided,这意味着该依赖只会在编译阶段生效,运行时不会被加入到classpath中,间接影响了报告组件的正常工作。
解决方案
1. 调整依赖版本与scope
修改你的pom.xml依赖部分,更新cucumber-extentsreport到适配Cucumber 4.x的版本,调整extentreports的scope,并添加明确的gherkin依赖避免版本冲突:
<dependencies> <!-- 升级到适配Cucumber 4.x的cucumber-extentsreport版本 --> <dependency> <groupId>com.vimalselvam</groupId> <artifactId>cucumber-extentsreport</artifactId> <version>4.0.0</version> </dependency> <!-- 移除provided scope,确保运行时能加载该依赖 --> <dependency> <groupId>com.aventstack</groupId> <artifactId>extentreports</artifactId> <version>3.0.7</version> </dependency> <!-- 添加明确的gherkin依赖,匹配Cucumber 4.2.2的兼容版本 --> <dependency> <groupId>io.cucumber</groupId> <artifactId>gherkin</artifactId> <version>5.1.0</version> </dependency> <!-- 以下依赖保持原有配置即可 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-java</artifactId> <version>4.2.2</version> </dependency> <dependency> <groupId>io.cucumber</groupId> <artifactId>cucumber-junit</artifactId> <version>4.2.2</version> </dependency> </dependencies>
2. 清理Maven缓存并重新构建
执行以下命令清理旧的依赖缓存,强制重新下载适配的依赖:
mvn clean install -U
完成以上步骤后,重新运行Test Runner应该就能解决这个错误了。
内容的提问来源于stack exchange,提问作者Neha
相关产品推荐
相关产品推荐

