我的 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/