Проблема с настройкой Cucumber в eclipse

Создал проект Maven и добавил следующие зависимости. Поэтому, когда я запускаю файл функций, я получаю сообщение об ошибке:

Exception in thread "main" java.lang.NoClassDefFoundError: io/cucumber/datatable/dependency/com/fasterxml/jackson/databind/JavaType
    at io.cucumber.datatable.DataTableType.<init>(DataTableType.java:78)
    at io.cucumber.datatable.DataTableTypeRegistry.<init>(DataTableTypeRegistry.java:23)
    at io.cucumber.stepexpression.TypeRegistry.<init>(TypeRegistry.java:19)
    at cucumber.runtime.Runtime.loadBackends(Runtime.java:87)
    at cucumber.runtime.Runtime.<init>(Runtime.java:42)
    at cucumber.api.cli.Main.run(Main.java:34)
    at cucumber.api.cli.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: io.cucumber.datatable.dependency.com.fasterxml.jackson.databind.JavaType
    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)
    ... 7 more

Также я использую JDK jdk1.8.0_121.

<dependencies>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </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-junit</artifactId>
            <version>1.2.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.cobertura</groupId>
            <artifactId>cobertura</artifactId>
            <version>2.1.1</version>
        </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>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>2.0.2-beta</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

Может ли кто-нибудь сообщить мне, если мне не хватает какой-либо библиотеки или мне нужно что-то изменить? Это может быть простой вопрос, но я не могу найти решение, так как я только начал работать с фреймворком Cucumber.


person Vinay Sagar    schedule 08.06.2018    source источник
comment
Вам нужно добавить зависимость ядра огурца. Также в ответе ниже вы смешиваете версии огурца от 3.0.2 до 1.2.5. В идеале он должен быть таким же   -  person Grasshopper    schedule 08.06.2018


Ответы (4)


Чтобы использовать Cucumber с JUnit, вам потребуются только следующие зависимости, которые вы можете найти в документации Cucumber здесь и здесь:

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java8</artifactId>
    <version>3.0.2</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>3.0.2</version>
    <scope>test</scope>
</dependency>    

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

Примечание.

  1. Убедитесь, что вы используете ту же версию Cucumber для всех зависимостей Cucumber; в противном случае вы можете вести себя непредсказуемо.

  2. JUnit 5 еще не поддерживается.

person Marit    schedule 18.06.2018

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

И, если вы используете баночки с огурцами с идентификатором группы info.cukes, используйте все зависимости с той же группой.

Если вы хотите обновить, используйте последние версии jar-файлов с io.cucumber 3.x.

person Jithu Paul    schedule 20.06.2018

Добавлять

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>datatable</artifactId>
    <version>1.1.12</version>
</dependency>

в ваш POM

person Ida Amit    schedule 29.05.2019

Получил, наконец, после стольких исследований. Следующие зависимости разрешили проблему.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Selenium</groupId>
    <artifactId>Cucumber</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>Cucumber</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java8</artifactId>
            <version>3.0.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.6.0</version>
            <scope>system</scope>
            <systemPath>C:\Program Files\Java\jdk1.8.0_121\lib\tools.jar</systemPath>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm</artifactId>
            <version>1.2.0</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>1.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>1.2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.cobertura</groupId>
            <artifactId>cobertura</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>info.cukes</groupId>
            <artifactId>cucumber-jvm-deps</artifactId>
            <version>1.0.3</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>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>2.0.2-beta</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>datatable-dependencies</artifactId>
            <version>1.0.2</version>
        </dependency>
    </dependencies>
</project>
person Vinay Sagar    schedule 08.06.2018
comment
Обратите внимание, что вы используете действительно очень старую версию огурца, так как v3 была недавно выпущена. Возможно, вы захотите обновить. - person Marit; 12.06.2018