3

Ich versuche, einen Gurken-Test mit JUnit und ich bekomme java.lang.NoClassDefFoundError Ausnahme.java.lang.NoClassDefFoundError Ausnahme beim Ausführen Gurken-Test mit JUnit

JUnit Code:

package ctest; 

import org.junit.runner.RunWith; 

import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 

@RunWith(Cucumber.class) 
@CucumberOptions(
features = "Feature" 
,glue={"stepDefinition"} 
) 

public class Runner { 

} 

Ausnahme:

java.lang.NoClassDefFoundError: gherkin/formatter/Formatter 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.access$100(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
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.runtime.RuntimeOptionsFactory.create(RuntimeOptionsFactory.java:25) 
at cucumber.api.junit.Cucumber.<init>(Cucumber.java:55) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 
Caused by: java.lang.ClassNotFoundException: gherkin.formatter.Formatter 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 34 more 

ich die unten Cucumber jar-Dateien hinzugefügt haben, Eclipse und hinzugefügt, um die Gurke Plugin von thi Link zu verdunkeln - http://cucumber.github.com/cucumber-eclipse/update-site.

enter image description here

fand ich einige ähnliche Fragen in SE und versuchte, die dort erwähnten Vorschläge aber vergeblich. Ich habe versucht, Essiggurke auf eine niedrigere Version herabzusetzen, wie in den folgenden Links vorgeschlagen. Aber das behebt das Problem nicht.

Antworten auf Fragen unten haben vorgeschlagen, die gleiche Version von Gurken JAR-Dateien hinzufügen. Aber da die Jar-Dateien, die in der Maven-Repository selbst verfügbar sind, nicht dieselbe Version haben, bin ich mir nicht sicher, wie/wo ich die gleiche Version aller Gurken-Jar-Dateien herunterladen kann.

Jede Hilfe dieses Problem zu beheben ist sehr geschätzt.

Antwort

3

Nach this, Gurken-java-1.2.4 erfordert gherkin-2.12.2, während Sie gherkin-4.0.0 bieten.

Sie können Version 2.12.2 von here herunterladen, Version 4.0.0 entfernen und sehen, ob es dann funktioniert (möglicherweise müssen Sie Eclipse neu starten).

+0

Greate, es ist Arbeit für mich. Danke –

0

Es passiert mit mir und lösen, wenn Sie jar Versionen ändern:

  • junit 3.8.1
  • Selen 2.47.1
  • Gurke java -1.2.2
  • Gurke junit 1.2.2