Errore durante l’esecuzione di cetriolo in junit

Ciao io sono nuovo di cetriolo java. sto cercando di eseguire un semplice cetriolo con funzione di test. qui di seguito sono la mia funzione di file, passo il file di definizione e junit runner file. ma io non sono in grado di eseguire il test con successo in cetriolo-java,cetriolo-junit versione 1.1.6.

Funzione file

Feature: Test if f1 feature is working
Scenario: valid scenario
Given input1 is "t"
When input2 is also "t"
Then result should be "pass"

Stepdefinition file

package cucumberFrameworkPractise;

import org.junit.Assert;

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



public class CucumberStepDefinitionTest {
    String input1,input2,result;
@Given("input1 is \"([^\"]*)\"$")
public void input1(String input1)
{
    this.input1=input1;
}
@When("input2 is also \"([^\"]*)\"$")
public void input2(String input2)
{
    this.input2=input2;
}
@Then("result should be \"([^\"]*)\"$")
public void result(String result)
{
    this.result=result;
    Assert.fail();
}
}

Cetriolo runner file

package cucumberFrameworkPractise;

import org.junit.runner.RunWith;

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "src/test/resources/cucumberFrameworkPractise", format = {
        "pretty", "html:target/cucumber-htmlreport",
"json-pretty:target/cucumber-report.json" })
public class CucumberRunner {

}

Io sono sempre il seguente errore:

java.lang.NoSuchMethodError: cucumber.runtime.RuntimeOptions.<init>(Ljava/util/List;)V
    at cucumber.runtime.RuntimeOptionsFactory.create(RuntimeOptionsFactory.java:24)
    at cucumber.api.junit.Cucumber.<init>(Cucumber.java:58)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

POM.xml

<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>mrunal</groupId>
  <artifactId>cucumbertest</artifactId>
  <version>1.0</version>
  <build>
  <plugins>
  <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.1</version>
        <executions>
          <execution>
            <id>default-test</id>
            <phase>test</phase>
            <goals>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
  </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>1.0.14</version>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>1.0.14</version>
    </dependency>
    <dependency>
        <groupId>info.cukes</groupId>
        <artifactId>cucumber-testng</artifactId>
        <version>1.1.5</version>
    </dependency>
  </dependencies>
</project>

Ma quando sono in esecuzione con 1.0.14 versione dello stesso sono in grado di eseguire con successo. perché è così? non 1.1.6 versione ha qualche bug in esso per eseguire?
TIA!!!

si potrebbe mostrare il vostro pom.xml. Funziona con 1.1.5?
Ciao Bala ho provato con 1.1.5 troppo, ma stesso errore.
potresti provare ad aggiungere cucumber-core di dipendenza (sto usando la versione 1.1.5) e vedere se funziona. Ho avuto problemi in cui anche se la documentazione dice che è incluso automaticamente.
provare con 1.1.5 per cucumber-java, cucumber-junit,
Ciao Bala sempre lo stesso errore non è lavoro, è in errore durante il tentativo di creare RuntimeOptions runtimeOptions = runtimeOptionsFactory.create(); non sono sicuro perché è mancata. ha fatto quello che hai suggerito. eventuali altri puntatori. mi chiedo ancora perché è inferiore versione 1.0.14

OriginaleL’autore Mrunal Gosar | 2014-05-09

3 Replies
  1. 6

    L’errore significa che cucumber.runtime.RuntimeOptions ha nessun costruttore che prende un List come argomento.

    Dal momento che tutte le classi sono parte di cetriolo, ho il sospetto che un bug nella release. Eseguire mvn dependency:tree e cercare l’uscita per cucumber. Assicurarsi di che avere una sola versione della dipendenza.

    Se il percorso è buono, provare una versione precedente.

    Se funziona, scaricare i sorgenti del cetriolo e compilarli. Funziona ora? Se è così, di aprire un bug report che indica il Cetriolo progetto che l’ultima versione non è stato compilato correttamente.

    dove posso segnalare il bug. Ho trovato il bug. Il bug è che in RuntimeOptionsFactory classe di cetriolo-core jar uno di importazione dichiarazione mancante per l’importazione di RuntimeOptions classe. Mi stavo chiedendo dove posso segnalare questo bug del cetriolo core? TIA
    Questo progetto dovrebbe essere il posto giusto: github.com/cucumber/cucumber-jvm

    OriginaleL’autore Aaron Digulla

  2. 4

    Nel termine Semplice, Abbiamo bisogno stesso barattolo versione del cetriolo-core,cetriolo-java,cetriolo-junit. Per ovviare a questo problema 🙂

    Errore, siamo sempre a causa dei file jar e la corrispondente versione(non adatto per il nostro JDK). Ho giocato con i file jar – ora il problema è stato risolto. E anche in grado di funzionare e generare l’output.

    Mio JDK – 1.8.0_60 VASI, junit -4.12 cucumber-java-1.2.2.jar cucumber-junit-1.2.2.jar cucumber-core-1.2.2.jar gherkin-2.12.2.jar cucumber-jvm-deps-1.0.3.jar

    Nota: java,junit,core dovrebbe essere nella stessa versione. Rimuovere indesiderati cetriolo vasi. Debug da installare solo due(e Java Junit) i file jar(diversa versione) e cercare di risolvere NoSuchMethod errore.

    Questa risposta può avere un fondo di verità, ma è molto difficile capire cosa si sta dicendo. Si prega di provare a modificare e riformulare la tua risposta.
    Questa risposta opere.

    OriginaleL’autore Sakthi

  3. 0

    Io sono nuovo e ancora in fase di apprendimento. Ho avuto un simile ‘cetriolo runner errore di inizializzazione del messaggio:

    java.lang.NoSuchMethodError: cucumber.runtime.RuntimeOptionsFactory.<init>(Ljava/lang/Class;[Ljava/lang/Class;)V
        at cucumber.api.junit.Cucumber.<init>(Cucumber.java:59)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
        at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:87)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:73)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

    Riferimento Librerie <= i Miei Vasi quando ho avuto un errore. Poi ho sostituito il mio cucumber-junit-1.1.5.jar con cucumber-junit-1.2.2.jar e il messaggio di errore è risolto. Ora posso eseguire il mio cetriolo junit test.
    Ho iniziato con l’ultima vasetti, ma che sembra avere problemi. Poi ho provato diverse combinazioni. Ho letto la ‘regola’ (anche detto sopra) che i tre vasi (-core, -java e -junit) devono essere della stessa versione. Solo allora sono stato in grado di eseguire il mio file di funzionalità e di test junit.

    Il mio attuale lavoro vasi sono:

    gherkin-2.12.2
    cucumber-core-1.2.2
    cucumber-java-1.2.2
    cucumber-junit-1.2.2
    cucumber-html-0.2.3
    cucumber-jvm-deps-1.0.3
    hamcrest-all-1.3
    junit-4.11
    selenium-server-standalone-3.13.0

    Spero che questo aiuta.

    OriginaleL’autore zagoo2000

Lascia un commento