2013-11-25 3 views
1

새 Java 프로젝트에서 BDD를 수행하는 데 cucumber-jvm을 사용하는 방법을 배우고 있습니다. 나는 이클립스를 사용하고 있는데 내 프로젝트 구조는 다음과 같다 : 나는 또한 Gradle을 사용하고와 오이 코어, 오이의 JUnit, 오이 자바와 JUnit을 종속성을 포함했다Eclipse에서 오이 jvm 테스트를 수행 할 수 없습니다.

LearningCucumber 
- src 
    - test 
    - java 
     - RunTests.java 
    - resources 
    - Sample.feature 

.

java.lang.NoClassDefFoundError: gherkin/util/FixJava 
    at cucumber.runtime.RuntimeOptions.<clinit>(RuntimeOptions.java:29) 
    at cucumber.runtime.RuntimeOptionsFactory.create(RuntimeOptionsFactory.java:25) 
    at cucumber.api.junit.Cucumber.<init>(Cucumber.java:60) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    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.<init>(JUnit4TestReference.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(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: gherkin.util.FixJava 
    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:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 21 more 

답변

2

당신은 작은 오이 의존성을 누락 메이븐에서 가져온 할 수 있습니다 다음 RunTests.java 클래스를 실행에

package test.java; 

import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
public class RunTests { 

} 

, 나는 initializationError 얻을 :

내 Runtests.java처럼 보이는 본부. 나는 그들이 2.12 최신 정보로 생각합니다.

또한

+0

에 프로젝트 구조를 변경해보십시오 작동하도록 테스트 환경에 대한 위해 오이-JVM-deps를 추가해야합니다 위의 의존성에서. 내가 gradle을 통해 테스트를 실행할 때, .feature 파일을 찾을 수 없다는 불평이있다. – amitbansalite

+0

나는 또한이 문제에 직면 해있다. 이것에 대한 해결책이 있는가? 어떻게 그걸 고쳤습니까? 제발 조언을 – Praveen

0

을 추가 한 후, 테스트를 실행할 수 없습니다 아직

src/main/resources

관련 문제