5

Używam razem Cucumber-JVM i Selenium WebDriver. Mam projekt Maven Eclipse i zależności od pom.xml pliku jest jak poniżej:Najnowsza wersja cucumber-java i cucumber-junit nie działa

<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> 

Zawartość pliku RunCukesTest.java jest:

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 { 
} 

Dostaję błąd w następujących liniach kodu:

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

Ale kiedy użyłem wersji 1.0.14 działa dobrze. Co jest złego w najnowszej wersji?

+0

co komunikat o błędzie masz? – Paizo

+0

Import pliku cucumber.junit nie może zostać rozwiązany dla "import cucumber.junit.Cucumber;" i wiele znaczników w tym wierszu \t - Ogorek nie może zostać rozpoznany jako typ \t - Klasa nie może zostać rozstrzygnięta na następne 2 wiersze kodu –

Odpowiedz

5

Adnotacja zmienił się @CucumberOptions:

I myślę json-pretty zmienił się json w tej wersji ogórka.

To powinno działać:

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

Ponadto, zgodnie z formatem cucumber-jvm specifications jest przestarzała. Powinieneś zamienić na plugin. To również powinno działać:

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

Nadzieja pomaga

8

@Cucumber.Options jest deprecated użycie @CucumberOptions zamiast

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

Nadzieja to pomaga

3

z ogórkiem 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> 
.... 

tu próbka testowa działa:

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 { 

} 

notatka import jest cucumber.api.junit.Cucumber zamiast cucumber.junit.Cucumber i trzeba dodać import dla opcji ogórka. Stereotypem tej opcji jest @CucumberOptions zamiast @Cucumber.Options

1

Możesz spróbować umieścić zarówno plik RunCukesTest.java, jak i plik funkcji w tym samym folderze lub pakiecie.

1

zastąpić @ Cucumber.Options z @CucumberOptions i formacie z Plugin

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

Inne odpowiedzi opisują już dokładnie te same kroki. – Pyves

1

wersja Ogórek zostanie zaktualizowany do wersji 2.0.1. Wymień

<groupId>info.cukes</groupId> 

z

<groupId>io.cucumber</groupId>