Java Selenium+Cucumber运行报NoClassDefFoundError错误如何解决
问题根源
你的报错本质是Cucumber依赖版本混配冲突:
- 你当前使用的
cucumber-java、cucumber-junit都是io.cucumber组下的7.0.0新版本 - 手动添加的
cucumber-core是旧版废弃info.cukes组下的1.2.5版本,新旧版本的包结构、类实现完全不兼容,才会出现类找不到的报错。
解决步骤
- 直接删除pom.xml中如下的旧版cucumber-core依赖段,不需要手动添加cucumber-core,新版
cucumber-junit会自动传递引入对应版本的core包:
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-core</artifactId> <version>1.2.5</version> </dependency>
- 保证所有io.cucumber组下的依赖版本完全一致,你当前的cucumber-java和cucumber-junit都是7.0.0,符合要求无需改动。
- 执行Maven清理刷新操作:
- 命令行执行
mvn clean install - IDE中刷新Maven依赖,清除项目编译缓存后重新运行即可。
- 命令行执行
若解决依赖问题后仍提示特征文件找不到,核对@CucumberOptions里的features路径和实际项目的特征文件目录大小写、路径是否匹配即可。
内容的提问来源于stack exchange,提问作者Workhard
相关产品推荐
相关产品推荐

