我正在使用Cucumber开发我的Selenium-JVM框架,并且在运行我的第一个功能时出现以下错误。
请帮忙。
我是如何启动此功能的?
立即例外 -
Exception in thread "main" cucumber.runtime.CucumberException: No backends were found. Please make sure you have a backend module on your CLASSPATH.
at cucumber.runtime.Runtime.<init>(Runtime.java:78)
at cucumber.runtime.Runtime.<init>(Runtime.java:67)
at cucumber.runtime.Runtime.<init>(Runtime.java:63)
at cucumber.api.cli.Main.run(Main.java:24)
at cucumber.api.cli.Main.main(Main.java:16)
我在代码中有什么 -
Launcher.java -
package cucumber;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(format={"pretty","json:target/"} , features="/src/test/java/cucumber/features")
public class Launcher {
}
功能文件 -
Feature: it works demo
Scenario: First test
Given this is my step
When this is my second step
Then this is my final step
添加到列表中的依赖项列表 -
cucumber-core-1.1.8
cucumber-html-0.2.3
cucumber-java-1.1.8
cucumber-junit-1.1.8
cucumber-jvm-deps-1.0.3
gherkin-2.12.2
hamcrest-all-1.3
junit-4.11
selenium-api-2.42.2
selenium-firefox-driver-2.42.2
selenium-java-2.42.2
selenium-remote-driver-2.42.2
selenium-support-2.42.2
我的JVM - 1.7
项目中只有这么多。
请帮忙。
答案 0 :(得分:11)
如果在类路径中找不到“后端”,则抛出此错误。每种支持的语言都有一个“后端”(例如,黄瓜-java,黄瓜-groovy等)。
这可能是一个类路径错误,但是如果黄瓜核心和黄瓜-java位于相同的位置似乎很奇怪。
答案 1 :(得分:8)
确保为Maven项目添加以下依赖项:
您可以将版本替换为最新版本或所需版本:
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.0</version>
</dependency>
答案 2 :(得分:1)
您没有提供步骤定义类的路径 在黄瓜选项中添加胶水可能会有所帮助。
**
@RunWith(Cucumber.class) @CucumberOptions(
features ="Path of the feature file",
glue = {"path of step definition class or package "},
format={"pretty","json:target/"},
dryRun = true,
strict = true,
monochrome = true )
**
答案 3 :(得分:0)
你可以在https://mvnrepository.com/artifact/info.cukes/cucumber-java/1.2.4尝试黄瓜-java-1.2.4。
我发现尝试使用相同JAR文件的先前版本对我有用。 我想这也可以为其他人解决。如果没有,请添加另一个答案。
让我知道它是否适合你,并节省了一些宝贵的时间: - )
答案 4 :(得分:0)
以下是修复: 在eclipse项目中,在 .project 文件中添加以下内容
<buildSpec>
...
<buildCommand>
<name>cucumber.eclipse.steps.jdt.stepsBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
...
<nature>cucumber.eclipse.steps.jdt.stepsNature</nature>
</natures>
&#13;
如果这不能解决问题, 添加依赖
黄瓜-java的
在项目类路径中或将jar的版本更改为latest或n-1
答案 5 :(得分:0)
我对黄瓜java的依赖来自pom。删除后,效果很好
答案 6 :(得分:0)
在您的依赖项中仅保留三个标签(groupId,artifactId和版本)。删除pom.xml中的标签和其他附加标签,然后尝试。
答案 7 :(得分:0)
我已使用以下库的最新版本更新了pom.xml文件。它对我有用。
确保使用正确版本的junit,cucumber-java,cucumber-junit。可能不像您使用的是junit的旧版本,还是黄瓜junit和Java的最新版本。我列出了我所使用的依赖项。您可以尝试这些。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.7.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>6.7.0</version>
</dependency>
答案 8 :(得分:0)
撰写2020年,尽管对此话题已经进行了足够的讨论。仍然可以帮助某人。对我来说,使用相同版本的
已解决了该问题黄瓜java
黄瓜汁
黄瓜芯 依存关系 我的POM片段
黄瓜 黄瓜java 6.4.0 黄瓜 黄瓜芯 6.4.0 黄瓜 黄瓜准 6.4.0 编译答案 9 :(得分:0)
尝试在 Eclipse 中运行 Cucumber 功能文件时,我收到了同样的错误消息
以下步骤对我有用:
使用以下库的最新和相同版本更新了我的 pom.xml 文件。
我也将'junit'更新到最新版本
答案 10 :(得分:0)
该错误只是表示您的设备上未正确配置黄瓜。 这可能是因为缺少依赖项或未正确加载依赖项。 首先检查依赖项然后全部保存,关闭编辑器,然后重新打开它。 尝试再次运行并检查。
答案 11 :(得分:0)
从 POM.XML 中删除了 Cucumber Core 依赖,它工作正常
答案 12 :(得分:0)
在 2021 年发表评论。这可能会对某人有所帮助。 问题很简单,cucumber groupid 已更改为 >io.cucumber<,因此如果您仍在使用 >info cukes<,您将收到异常。这就是为什么当您将黄瓜 java 更新到最新版本时,它解决了问题,因为最新的 groupid 为 io.cucumber。您也可以将 pom.xml 中的所有 groupid 信息块更改为 io.cucumber。这将解决问题
答案 13 :(得分:-1)
尝试在Eclipse中运行Cucumber功能文件时遇到了同样的错误消息(“找不到后端。请确保在CLASSPATH上有后端模块”。)
为我修复的是进入我的pom.xml并将cucumber-java和cucumber-junit版本从1.2.5(per their documentation)更改为1.2.0。
我不是百分百肯定我是否因为这样做而忽略了一个真正的问题。以下是有关我的设置的更多信息:
我通过快速命令验证了java和maven已成功安装并在我的机器上运行。我还验证了Maven在我的Eclipse项目中引入了黄瓜-java和黄瓜核心罐。奇
答案 14 :(得分:-1)
添加以下依赖项,我已经解决了该问题
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>4.2.6</version>
</dependency>