设置黄瓜测试时出现NoClassDefFoundError [英] NoClassDefFoundError while setting up cucumber tests

查看:145
本文介绍了设置黄瓜测试时出现NoClassDefFoundError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的黄瓜设置出现以下错误。我正在观看youtube视频( https://www.youtube.com/watch? v = pD4B839qfos& list = PL_noPv5wmuO_t6yYbPfjwhJFOOcio89tI ),但是我下载了所有最新的jar。不知道出了什么问题,但现在我不知道需要做什么。有人可以帮我吗?

 线程 main中的异常java.lang.NoClassDefFoundError:gherkin / formatter / Formatter 
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang.ClassLoader.defineClass(ClassLoader.java:800)
在java.security.SecureClassLoader.defineClass(SecureClassLoader.java: 142)java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)
java.net URLClassLoader $ 1.run(URLClassLoader.java:361)
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)java.security.AccessController.doPrivileged(本机方法)
在java.net.URLClassLoader.findClass(URLClassLoader.java:354)
在java.lang.ClassLoader.loadClass(ClassLoader.java:425)
在sun.misc.Launcher $ AppClassLoader.loadClass( Launcher.java:308)java.lang.ClassLoader.loadClass的
(ClassLoader.java:358)cucumber.runtime.formatter.PluginFactory $ 1的
。< init>( uginFactory.java:53)
在cucumber.runtime.formatter.PluginFactory。< clinit>(PluginFactory.java:52)
在cucumber.runtime.RuntimeOptions。< init>(RuntimeOptions.java: 69)cumber.api.cli.Main.run(Main.java:31)处的
cumulage.api.cli.Main.main(Main.java:18)处的

引起:java.lang.ClassNotFoundException:gherkin.formatter.Formatter
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)
在java.net.URLClassLoader $ 1.run(URLClassLoader.java: 355)java.security.AccessController.doPrivileged(本机方法)
java.net.URLClassLoader.findClass(URLClassLoader.java:354)
java.lang.ClassLoader.loadClass($$$ b) ClassLoader.java:425)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)
在java.lang.ClassLoader.loadClass(ClassLoader.java:358)
...还有17个


解决方案

这表示您的小黄瓜版本正在使用的与其他Cucumber库不兼容。我尝试使用最新的gherkin3-3.0.0,但对我不起作用,因此我将其降级为gherkin-2.12.2



我在10月的版本低于黄瓜17




  • cobertura-2.1.1

  • cucumber-core-1.2.5

  • cucumber-java-1.2.5

  • cucumber-junit-1.2.5cucumber-jvm-deps-1.0.5

  • cucumber-reporting-3.10.0 gherkin-2.12.2 junit-4.12

  • mockito-all-2.0.2-beta



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

下b
$ b

如果这不能解决您的问题,请确保从Project Build Path中删除jar,然后再次添加。同样,如果您使用的是maven,则清除本地maven存储库也可能有帮助。 com / cucumber / download-cucumber-jvm-eclipse / rel = nofollow noreferrer>> 教程


I am getting the following error with my cucumber setup. I was following a youtube video (https://www.youtube.com/watch?v=pD4B839qfos&list=PL_noPv5wmuO_t6yYbPfjwhJFOOcio89tI) for this setup but I downloaded all the latest jars. Not sure what went wrong but now I can't figure out what needs to be done. Can anyone help me, please?

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

解决方案

This means that Gherkin version you are using is not compatible with other Cucumber libraries. I tried using the latest gherkin3-3.0.0 but it did not work for me, so I degraded it to gherkin-2.12.2

I got below versions on Oct’17 for Cucumber

  • cobertura-2.1.1
  • cucumber-core-1.2.5
  • cucumber-java-1.2.5
  • cucumber-junit-1.2.5 cucumber-jvm-deps-1.0.5
  • cucumber-reporting-3.10.0 gherkin-2.12.2 junit-4.12
  • mockito-all-2.0.2-beta

The compatible version with your Cucumber-java can be found here under the Provided Dependencies section

If this does not resolve your issue make sure you remove jars from Project Build Path and add back again. Same if you are using maven then clearing local maven repository may also help.

You can also follow the steps mention in this tutorial

这篇关于设置黄瓜测试时出现NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆