2013-11-25 4 views
1

Я изучаю, как использовать cucumber-jvm для создания BDD в моем новом проекте java. Я использую затмение, и моя структуру проекта выглядит следующим образом:Невозможно выполнить тест jvm огурца в Eclipse

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

Я также использую Gradle и включил зависимости огурец ядра, огурец-JUnit, огурец-Java и JUnit.

Мои Runtests.java выглядит следующим образом:

package test.java; 

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

@RunWith(Cucumber.class) 
public class RunTests { 

} 

Исполняя класс RunTests.java, я получаю initializationError:

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

Вы пропускаете зависимость корнишоны, которая может быть получена от Maven Центральный. Я думаю, что они до 2.12 из последней информации.

Вам также нужно добавить огурец-Jvm-DEPS для того, чтобы контекст тестирования для работы

+0

еще не в состоянии выполнить тест, после добавления в вышеуказанных зависимостях. Когда я выполняю тест через gradle, он жалуется на невозможность найти файл .feature – amitbansalite

+0

. Я также сталкиваюсь с этой проблемой. У вас есть решение для этого.? Как ты это починил. Пожалуйста посоветуй – Praveen

0

Попробуйте изменить структуру проекта в

src/main/resources

Смежные вопросы