java.lang.NoClassDefFoundError исключение: gherkin / util / FixJava при выполнении теста на огурец с использованием JUnit - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь запустить тест на огурец с JUnit и получаю исключение

java.lang.NoClassDefFoundError: gherkin/util/FixJava

RunnerClass:

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


    @RunWith(Cucumber.class) 
    @Cucumber.Options(
            features = ".//FeatureFile", //the path of the feature files
            glue= "StepDfb"
            )


    public class RunTest { 

    }

Отслеживание стека исключений

java.lang.NoClassDefFoundError: gherkin/util/FixJava
    at cucumber.runtime.RuntimeOptions.<clinit>(RuntimeOptions.java:25)
    at cucumber.junit.RuntimeOptionsFactory.create(RuntimeOptionsFactory.java:30)
    at cucumber.junit.Cucumber.<init>(Cucumber.java:56)
    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:87)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:73)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:523)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:761)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207)
Caused by: java.lang.ClassNotFoundException: gherkin.util.FixJava
    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)
    ... 20 more

Я добавил приведенные ниже файлы огурца jar в Eclipse и добавил плагин огурца для затмения

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.47.1</version>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.0.2</version>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-jvm</artifactId>
        <version>1.2.5</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-jvm-deps</artifactId>
        <version>1.0.5</version>
    </dependency>

    <dependency>
        <groupId>net.masterthought</groupId>
        <artifactId>cucumber-reporting</artifactId>
        <version>1.0.0</version>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>gherkin</artifactId>
        <version>2.12.2</version>
    </dependency>

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.0.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>


</dependencies>

Любая помощь, чтобы решить эту проблему высоко ценится

1 Ответ

0 голосов
/ 04 ноября 2019
  1. Вы используете разные версии для ваших огуречных зависимостей. Убедитесь, что вы используете одну и ту же версию для всех ваших зависимостей Cucumber, чтобы предотвратить проблемы.
  2. Вы явно импортируете зависимости, которые являются транзитивными зависимостями. Удалите их из вашего pom.xml.
  3. Вы используете очень старую версию Cucumber. Пожалуйста, используйте более новую версию.

Вы можете найти зависимости, которые вам нужны, и их самую последнюю версию в документации по cucumber: cucumber.io/docs при установке: https://cucumber.io/docs/installation/java/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...