IntelliJ и огурец не работают - PullRequest
0 голосов
/ 25 июня 2018

Я использую IntelliJ Idea Ultimate 2018.1, и в моем Java-проекте у меня есть несколько BDD, реализованных с помощью Cucumber и Gherkin. когда я пытаюсь щелкнуть правой кнопкой мыши по файлу объекта и запустить его, я вижу следующую ошибку

Exception in thread "main" java.lang.NoClassDefFoundError: gherkin/formatter/Formatter
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at cucumber.runtime.formatter.PluginFactory.loadClass(PluginFactory.java:174)
    at cucumber.runtime.formatter.PluginFactory.pluginClass(PluginFactory.java:166)
    at cucumber.runtime.formatter.PluginFactory.getPluginClass(PluginFactory.java:223)
    at cucumber.runtime.formatter.PluginFactory.isStepDefinitionReporterName(PluginFactory.java:206)
    at cucumber.runtime.RuntimeOptions$ParsedPluginData.addPluginName(RuntimeOptions.java:456)
    at cucumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:160)
    at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:112)
    at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:105)
    at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:97)
    at cucumber.api.cli.Main.run(Main.java:30)
    at cucumber.api.cli.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: gherkin.formatter.Formatter
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

Это происходит в течение нескольких дней. В прошлом работал отлично. Установлены огурцы для плагинов java и корнишонов. Я пытался загрузить новую свежую версию IntelliJ, но безуспешно.

Зависимости моего проекта следующие:

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-spring</artifactId>
        <version>${cucumber.version}</version>
    </dependency>

и мой файл функций похож на следующий

Характеристика: блокировка накопления

Scenario: Blocker Accumulation
    Given I am logged as a user
    And I have an In-progress activity
    And it has been previously blocked for 16 days
    And now is not blocked
    When I block the activity for other more 6 days
    Then the total blocking days is 22

Что я могу попробовать? В чем моя вина? Спасибо

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Вам нужно обновить плагин Cucumber for Java. (Это может включать удаление / установку, чтобы заставить его работать правильно).

0 голосов
/ 29 июня 2018

Проблема была в совместимости между cucumber 3 и плагином intelliJ для огурцов.

Чтобы все работало, я изменил значение cucumber.version с 3.0.2 на 2.4.0.

0 голосов
/ 25 июня 2018

Вам нужно будет добавить несколько других зависимостей. Вам не хватает gherkin.jar.

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-jvm-deps</artifactId>
    <version>1.0.6</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin-jvm-deps</artifactId>
    <version>1.0.4</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin</artifactId>
    <version>5.0.0</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>tag-expressions</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>${cucumber.version}</version>
</dependency>

Если вам нужна поддержка java-8 для stepdefs в стиле лямбда, добавьте cucumber-java8 зависимость.

...