Moh*_*air 1 java eclipse bdd junit cucumber
package cucumber;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(
format={"pretty"},
features= "src/features/"
)
public class cucumberRunner {
}
Run Code Online (Sandbox Code Playgroud)
使用:
错误跟踪:
java.lang.NoClassDefFoundError: org/dom4j/Element at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.privateGetPublicMethods(Unknown Source) at java。 lang.Class.getMethods(Unknown Source) atcucumber.runtime.java.MethodScanner.scan(MethodScanner.java:40) 在cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86) 在cucumber.runtime.Runtime。 (Runtime.java:91) 在cucumber.runtime.Runtime.(Runtime.java:69) 在cucumber.runtime.Runtime.(Runtime.java:65) 在cucumber.api.junit.Cucumber.createRuntime(Cucumber.java: 78)在cucumber.api.junit.Cucumber.(Cucumber.java:58) 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) 在 org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 在 org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 在 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) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests( JUnit4TestLoader.java:43) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java: 675) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 引起的: java.lang.ClassNotFoundException: org.dom4j.Element 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) ... 28 更多
可能是什么问题呢?
问题是您的课程位于“cucumber”包中。重命名包或将您的步骤定义和其他胶水代码移动到子包中,例如“cucumber.steps”,并将胶水代码的查找限制在此包中:
package cucumber;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
format={"pretty"},
features= "src/features/",
glue = "cucumber.steps")
public class cucumberRunner {}
Run Code Online (Sandbox Code Playgroud)