黄瓜exception:java.lang.ClassNotFoundException:cucumber.io.ResourceLoader

每当我通过Junit进行黄瓜测试时,我都会遇到错误。 以下是以下例外情况。 任何帮助都会很棒

注意:

项目中没有错误

java.lang.NoClassDefFoundError: cucumber/io/ResourceLoader at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Class.java:2398) at java.lang.Class.getConstructor0(Class.java:2708) at java.lang.Class.getConstructor(Class.java:1659) at cucumber.runtime.Reflections.hasConstructor(Reflections.java:53) at cucumber.runtime.Reflections.instantiateSubclasses(Reflections.java:29) at cucumber.runtime.Runtime.loadBackends(Runtime.java:96) at cucumber.runtime.Runtime.(Runtime.java:63) at cucumber.api.junit.Cucumber.createRuntime(Cucumber.java:74) at cucumber.api.junit.Cucumber.(Cucumber.java:61) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29) at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21) 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:26) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.(JUnit4TestReference.java:33) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.(JUnit4TestClassReference.java:25) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: java.lang.ClassNotFoundException: cucumber.io.ResourceLoader at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 28 more 

以下是我的POM.xml的样子:

  4.0.0 Test Cucumber 0.0.1-SNAPSHOT   junit junit 4.11    info.cukes cucumber-junit 1.1.8   org.seleniumhq.selenium selenium-chrome-driver 2.42.2   info.cukes cucumber-java 1.0.0.RC5 test    

这是我的项目结构的图像: 在此处输入图像描述

这是我的RunIT.Java类

 package com.Cucumber; import org.junit.runner.RunWith; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; @RunWith(Cucumber.class) @CucumberOptions( tags={"@mysingle"}, features = {"."}) public class RunIT { } 

看起来你错过了黄瓜核心库。

尝试将以下内容添加到依赖项中。

   info.cukes cucumber-core 1.1.8  

此外,您似乎是混合和匹配版本。 尝试对所有的cucumber- *库使用相同的版本。

你试图在java中运行Cucumber,你还没有加载Cucumber-java依赖项? 你的黄瓜应该如何执行?

以下是让您的Cucumber启动和运行所需的最低依赖项:

-Cucumber-java(1.2.2)-Cucumber-junit(1.2.2)-Cucumber-picocontainer(1.2.2)-junit(4.12)

Maven管理其余的依赖项。 确保您拥有最新的依赖项,并且您没有混合和匹配版本(例如,我使用了所有1.2.2版本)

编辑:刚刚注意到你的Cucumber-java位于pom.xml的底部。 订购依赖项是一个很好的做法….所有黄瓜依赖关系一个接一个地聚集在一起。