5

Я использую Cucumber-JVM и Selenium WebDriver вместе. У меня есть проект Maven в затмении и зависимости pom.xml файла, как показано ниже:Последняя версия огурца-java и огурца-юнит не работает

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

Содержание RunCukesTest.java файла:

import org.junit.runner.RunWith; 
import cucumber.junit.Cucumber; 
@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber-htmlreport","json-pretty:target/cucumber-report.json"}) 
public class RunCukesTest { 
} 

Я получаю сообщение об ошибке в следующих строках кода:

import cucumber.junit.Cucumber; 
@RunWith(Cucumber.class) 
@Cucumber.Options(format = {"pretty", "html:target/cucumber-htmlreport","json-pretty:target/cucumber-report.json"}) 

Но когда я использовал версию 1.0.14, он хорошо работает. Что случилось с последней версией?

+0

, что сообщение об ошибке у вас есть? – Paizo

+0

Импорт cucumber.junit не может быть разрешен для "import cucumber.junit.Cucumber;" и Несколько маркеров в этой строке \t - Огурцы не могут быть разрешены к типу \t - Класс не может быть разрешен для следующих 2 строк кода –

ответ

5

аннотаций изменился на @CucumberOptions:

И я думаю, что json-pretty изменился на json в этой огуречной версии.

Это должно работать:

@CucumberOptions(
     format = {"pretty", "html:target/cucumber-htmlreport","json:target/cucumber-report.json"} 
) 

Кроме того, в соответствии с форматом cucumber-jvm specifications является устаревшим. Вы должны заменить на plugin. Это также должно работать:

plugin = {"pretty", "html:target/cucumber-htmlreport","json:target/cucumber-report.json"} 

Надеется, что это помогает

8

@Cucumber.Options является deprecated использования @CucumberOptions вместо

@CucumberOptions(
    format = "pretty", 
    features = "//refer to Feature file" 
) 

Надеется, что это помогает вам

3

с огурцами 1.2.2

<cucumber.version>1.2.2</cucumber.version> 
.... 
    <dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-java</artifactId> 
     <version>${cucumber.version}</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>info.cukes</groupId> 
     <artifactId>cucumber-junit</artifactId> 
     <version>${cucumber.version}</version> 
     <scope>test</scope> 
    </dependency> 
.... 
Дрессировка

здесь образец:

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

@RunWith(Cucumber.class) 
@CucumberOptions(features = "classpath:features/myfeature.feature", tags = "@Mytag", plugin = {"pretty", "html:target/cucumber"}) 
public class MYAcceptanceTest { 

} 

примечание импорт является cucumber.api.junit.Cucumber вместо cucumber.junit.Cucumber и вам нужно добавить импорт для вариантов огурца. Стереотип для опции @CucumberOptions вместо @Cucumber.Options

1

Вы можете попробовать разместить файл RunCukesTest.java и свой файл функций в той же папке или пакете.

1

заменить @ Cucumber.Options с @CucumberOptions и формате с Plugin

@CucumberOptions(plugin = {"pretty", "html:target/cucumber-htmlreport","json-pretty:target/cucumber-report.json"}) 
public class RunCukesTest { 
} 
+0

Другие ответы уже описывают эти одинаковые шаги. – Pyves

1

Огурцы версия теперь обновлен до версии 2.0.1. Заменить

<groupId>info.cukes</groupId> 

с

<groupId>io.cucumber</groupId> 
Смежные вопросы