2016-07-29 17 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 more在設計頁面對象模型時嘗試使用BDD黃瓜Selenium時出現此錯誤

+0

歡迎來到SO。請花些時間閱讀stackoverflow.com/help/how-to-ask。它將幫助你制定可以提供良好答案的可靠問題。而且你應該包含最少量的代碼來證明你的問題以及你已經做了什麼來解決它。 – orde

+1

這不是我見過的最好的堆棧溢出問題之一。我的建議是把你的問題看作是一個錯誤:發生了什麼,應該發生什麼,你做了什麼(足夠的信息來重現它)。你可以做得更好。 –

+0

當然。我是新來的。將學會做得更好 – sivva

回答

0

問題是黃瓜無法找到您的膠水庫。命令行運行程序位於堆棧跟蹤中,這表明您沒有遵循CLI的語法規則。以下是一個示例:

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" 

請注意關鍵字前的雙短橫線字符。還要注意,因爲有兩個膠水路徑,所以有兩個膠水子句。另請注意,僅指定了雙路徑的包名稱。

進一步注意STDOUT需要在--plugin pretty:STDOUT上指定。

最後注意功能關鍵字被完全刪除。最後指定的路徑(沒有關鍵字)告訴cucumber-jvm在哪裏找到要素文件。

被警告,如果你有任何這個錯誤,那麼cucumber-jvm會給你帶有第一手知識的神祕錯誤消息。用法解釋爲here

BTW,claspath:指的是,在這種情況下,Maven的默認的classpath這對於功能是

src/test/resources/ 

如果你想在未來幫助後重現該問題所需的最低代碼。請記住,你的大腦不是連接網絡的設備。 :-)

+0

步驟定義的Maven默認類路徑是src/test/java – MikeJRamsey56

+0

PS。 PicoContainer也可能是一個問題,但你沒有提到依賴注入。如果您正在使用[依賴注入](https://cucumber.io/docs/reference/java-di),請告訴我們。 – MikeJRamsey56

相關問題