问题描述
Failed: runScenario("Register To website","Optional[User Registration]")
Runs Cucumber Scenarios
java.lang.NoClassDefFoundError: io/cucumber/messages/Messages$JavaMethod
at io.cucumber.core.runner.Cachingglue.createSourceReference(Cachingglue.java:303)
at io.cucumber.core.runner.Cachingglue.lambda$emitStepDefined$5(Cachingglue.java:293)
at java.util.Optional.ifPresent(UnkNown Source)
at io.cucumber.core.runner.Cachingglue.emitStepDefined(Cachingglue.java:293)
at io.cucumber.core.runner.Cachingglue.lambda$prepareglue$3(Cachingglue.java:252)
at java.util.ArrayList.forEach(UnkNown Source)
at io.cucumber.core.runner.Cachingglue.prepareglue(Cachingglue.java:243)
at io.cucumber.core.runner.Runner.runPickle(Runner.java:68)
使用BDD和Java运行黄瓜时出现此错误
[1]:https://i.stack.imgur.com/8VgxW.png
[2]:https://i.stack.imgur.com/h8SSv.png
[3]:https://i.stack.imgur.com/R5WqZ.png
更新: 我将这种依赖关系用于黄瓜,这是怎么回事
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>gherkin</artifactId>
<version>15.0.0</version>
</dependency>
解决方法
我降级了依赖项,然后它起作用了,因为我使用了 java 8 我的参考是黄瓜docs
<dependency>
<groupId>com.github.javafaker</groupId>
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>6.2.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-core</artifactId>
<version>6.2.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.2.0</version>
</dependency>