0

线程“主” cucumber.runtime.CucumberException 中的异常:java.lang.AbstractMethodError:cucumber.runtime.java.picocontainer.PicoFactory.addClass(Ljava/lang/Class;)V 在 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend .java:154) 在 cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:68) 在 cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:41) 在 cucumber.runtime.java.JavaBackend.loadGlue( JavaBackend.java:86) 在 cucumber.runtime.Runtime.(Runtime.java:91) 在 cucumber.runtime.Runtime.(Runtime.java:69) 在 cucumber.runtime.Runtime.(Runtime.java:65) 在 cucumber .api.cli.Main.run(Main.java:35) at cucumber.api.cli.Main.main(Main.java:18) 原因:java.lang.AbstractMethodError: cucumber.runtime.java.picocontainer.PicoFactory .addClass(Ljava/lang/Class;)V 在 cucumber.runtime.java.JavaBackend.addStepDefinition(JavaBackend.java:149) ... 还有 8 个

4

1 回答 1

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"

请注意关键字前的双破折号字符。另请注意,由于有两个粘合路径,因此有两个 --glue 子句。另请注意,仅指定了两个 -glue 路径的包名称。

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

最后请注意,features 关键字已完全删除。最后指定的路径(没有关键字)告诉 cucumber-jvm 在哪里可以找到功能文件。

请注意,如果您遇到任何此类错误,那么 cucumber-jvm 会为您提供您拥有第一手知识的神秘错误消息。这里解释了用法。

顺便说一句,claspath:在这种情况下,指的是 Maven 默认的类路径,它的特性是

src/test/resources/

如果您以后需要帮助,请发布重现问题所需的最少代码。请记住,您的大脑不是网络连接设备。:-)

于 2016-07-31T17:55:21.060 回答