执行Cucumber Selenium测试时遭遇gherkin/ParserException类未找到错误
问题
执行命令 mvn clean test -P <profile_name> 运行Cucumber Selenium自动化测试项目时,抛出错误:
[ERROR] TestRunner>AbstractTestNGCucumberTests.setUpClass:27 ? Cucumber java.lang.NoClassDefFoundError: gherkin/ParserException
已经确认依赖树和项目本地库中存在gherkin/ParserException类,但问题依旧,附上项目pom.xml文件及相关截图,求帮忙排查解决。
排查方向
- 查依赖范围:确认gherkin依赖的
<scope>是不是设成了test,如果编译阶段需要但只给了test范围,运行时会找不到类。同时用mvn dependency:tree扫一遍依赖树,看有没有多个版本的gherkin,把冲突的旧版本排除掉。 - 检查Maven Profile:看看指定的
<profile_name>在pom.xml里的配置,是不是这个profile覆盖了依赖,比如不小心移除了gherkin或者改了版本。 - 验证类路径:用
mvn dependency:build-classpath输出测试阶段的类路径,确认gherkin的jar包确实在里面——有些插件或IDE可能会在测试时用不同的类加载路径。 - 清理缓存:跑一遍
mvn clean install -U强制更新依赖,把本地仓库里可能损坏的jar包换掉。 - 检查TestRunner代码:确认TestRunner类继承
AbstractTestNGCucumberTests的方式有没有问题,有没有自定义的setUpClass方法干扰了类加载流程。
内容的提问来源于stack exchange,提问作者Satish
相关产品推荐
相关产品推荐

