2016-07-29 16 views
0

Exception in thread "main" cucumber.runtime.CucumberException: java.lang.AbstractMethodError: cucumber.runtime.java.picocontainer.PicoFactory.addClass(Ljava/lang/Class;)V at cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:154) at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:68) at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:41) at cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86) at cucumber.runtime.Runtime.(Runtime.java:91) at cucumber.runtime.Runtime.(Runtime.java:69) at cucumber.runtime.Runtime.(Runtime.java:65) at cucumber.api.cli.Main.run(Main.java:35) at cucumber.api.cli.Main.main(Main.java:18) Caused by: java.lang.AbstractMethodError: cucumber.runtime.java.picocontainer.PicoFactory.addClass(Ljava/lang/Class;)V at cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:149) ... 8 moreErhalte diesen Fehler beim Versuch BDD Gurke Selen beim Entwerfen Seite Objektmodell

+0

Willkommen bei SO. Bitte nehmen Sie sich die Zeit, stackoverflow.com/help/how-to-ask zu lesen. Es wird Ihnen helfen, solide Fragen zu formulieren, die (hoffentlich) gute Antworten liefern. Und Sie sollten die minimale Menge an Code angeben, die Ihr Problem veranschaulicht und was Sie getan haben, um es zu lösen. – orde

+1

Das ist nicht eine der besten Stack Overflow Fragen die ich gesehen habe. Mein Tipp ist, deine Frage so zu behandeln, als wäre es ein Bug: Was passiert, was soll passieren, was hast du gemacht (genug Informationen um es zu reproduzieren). Das kannst du besser. –

+0

sicher. Ich bin neu in diesem Bereich. wird lernen, es besser zu machen – sivva

Antwort

0

Das Problem ist, dass Gurke Ihre Leim-Bibliotheken nicht finden kann. Der Befehlszeilen-Runner befindet sich in der Stack-Ablaufverfolgung, was darauf hindeutet, dass Sie die Syntaxregeln für CLI nicht befolgen. Hier ein Beispiel:

mvn clean test -Dcucumber.options="--tags @search --monochrome --plugin pretty:STDOUT --plugin html:target/cucumber-html-report --plugin json:target/cucumber.json --glue steps --glue runsupport classpath:features" 

Beachten Sie die Doppelstrichzeichen vor den Stichwörtern. Beachten Sie auch, dass es zwei Klebepfade gibt, die zwei - glue-Klauseln enthalten. Beachten Sie außerdem, dass nur der Paketname der zwei Pfade angegeben wurde.

Weitere Anmerkung, dass STDOUT auf --plugin pretty angegeben werden musste: STDOUT.

Beachten Sie, dass das features-Schlüsselwort vollständig gelöscht wurde. Der am Ende angegebene Pfad (ohne ein Schlüsselwort) teilt gurke-jvm mit, wo die Feature-Dateien zu finden sind.

Seien Sie gewarnt, wenn Sie etwas falsches bekommen, dann gibt Ihnen gurke-jvm kryptische Fehlermeldungen, mit denen Sie aus erster Hand wissen. Die Verwendung wird erläutert here.

BTW, claspath: bezieht sich auf, in diesem Fall die Maven Standard Classpath für Funktionen, die ist

src/test/resources/ 

Wenn Sie Hilfe wollen in Zukunft die Mindest Code schreiben notwendig, das Problem zu reproduzieren. Denken Sie daran, dass Ihr Gehirn kein netzwerkverbundenes Gerät ist. :-)

+0

Der Maven-Standardklassenpfad für Schrittdefinitionen ist src/test/java – MikeJRamsey56

+0

PS. PicoContainer könnte auch ein Problem sein, aber du hast die Abhängigkeitsinjektion nicht erwähnt. Wenn Sie [dependency injection] (https://cucumber.io/docs/reference/java-di) verwenden, lassen Sie es uns wissen. – MikeJRamsey56