Cucumber-JVM - @When не может быть преобразован в тип - PullRequest
0 голосов
/ 06 февраля 2019

Я следую этому руководству , чтобы настроить BDD с использованием Cucumber-JVM в проекте Java.Я настроил следующий тестовый файл в папке src/test/java для проекта Java, над которым я работаю в Eclipse:

CucumberTest.java

package myPackage;

import static org.junit.Assert.fail;

import java.io.IOException;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;


@RunWith(Cucumber.class)
@CucumberOptions(features = "classpath:Feature")
public class CucumberTest {

    // error on line below 'When cannot be resolved to a type'
    @When("^the step is invoked$")
    public void myTestMethod() throws IOException {

    }   
}

Я уверен, что это что-то простое (я относительно новичок в Cucumber для приложений Java), и я считаю, что я делаю все это в правильном месте.Как мне исправить ошибку?Использование CTRL+SHIFT+O (организация импорта) не приводит к автоматическому импорту того, что мне нужно, и я искал соответствующий пакет, который мне может понадобиться импортировать, в пространствах имен cucumber.api, cucumber.api.junit и cucumber.api.junit.Cucumber, итам, кажется, нет ничего, что я должен импортировать.Я рассмотрел подобные вопросы SO и не нашел никаких подсказок, так как моя проблема более конкретна.

1 Ответ

0 голосов
/ 06 февраля 2019

Спасибо @racraman за подсказку.Я использовал более старые версии зависимостей Cucumber-JVM Maven:

    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-jvm</artifactId>
        <version>1.2.5</version>
        <type>pom</type>
    </dependency>
     -->
    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.2.5</version>
        <scope>test</scope>
    </dependency>

Я заменил их на современные зависимости, использующие io.cucumber <groupId>

    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.2.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.2.2</version>
        <scope>test</scope>
    </dependency>

Теперь я могу импортировать соответствующую аннотацию:

 import cucumber.api.java.en.When;
...