java - 设置 cucumber 测试时出现 NoClassDefFoundError

标签 java cucumber-jvm

我的 cucumber 设置出现以下错误。我正在关注 YouTube 视频( https://www.youtube.com/watch?v=pD4B839qfos&list=PL_noPv5wmuO_t6yYbPfjwhJFOOcio89tI )来进行此设置,但我下载了所有最新的 jar 。不知道出了什么问题,但现在我不知道需要做什么。请问有人可以帮我吗?

Exception in thread "main" java.lang.NoClassDefFoundError: gherkin/formatter/Formatter
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at cucumber.runtime.formatter.PluginFactory$1.<init>(PluginFactory.java:53)
at cucumber.runtime.formatter.PluginFactory.<clinit>(PluginFactory.java:52)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:69)
at cucumber.api.cli.Main.run(Main.java:31)
at cucumber.api.cli.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: gherkin.formatter.Formatter
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 17 more

最佳答案

这意味着您使用的 Gherkin 版本与其他 Cucumber 库不兼容。我尝试使用最新的 gherkin3-3.0.0 但它对我不起作用,所以我将其降级为 gherkin-2.12.2

我在 17 年 10 月获得了以下 Cucumber 版本

  • cobertura-2.1.1
  • cucumber 核心-1.2.5
  • cucumber -java-1.2.5
  • cucumber -junit-1.2.5 cucumber -jvm-deps-1.0.5
  • cucumber 报告-3.10.0 小 cucumber -2.12.2 junit-4.12
  • mockito-all-2.0.2-beta

可以找到与您的 Cucumber-java 兼容的版本 here提供的依赖项部分下

如果这不能解决您的问题,请确保从项目构建路径中删除 jar 并再次添加回来。同样,如果您使用 Maven,那么清除本地 Maven 存储库也可能有所帮助。

您还可以按照此tutorial中提到的步骤进行操作

关于java - 设置 cucumber 测试时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378974/

相关文章:

java - 仅使用框架布局分配大量内存

java - Maven 不编译类并且 war 文件中没有类文件

java - cucumber 没有将特征文件中数据表中的日期字符串序列化到我的 pojo 中的 LocalDate 字段

java - 在 Cucumber 步骤中 Autowiring 字段会产生 NullPointerException

spring-boot - Spring Boot 在 cucumber 步骤上加载 SQL

java - 如何逐步运行@RunWith(Cucumber.class)

internationalization - cucumber /小 cucumber 的翻译在哪里?

java - SOLR 1.4 - 按标志排序

java - Mysql插入语句并向PHP传递参数

java - 当我在模拟器中尝试该应用程序时出现 "Unfortunately, app has stopped"错误消息