线程" main"中的例外情况cucumber.runtime.CucumberException:找不到后端

时间:2014-09-18 22:26:20

标签: java selenium-webdriver cucumber-jvm

我正在使用Cucumber开发我的Selenium-JVM框架,并且在运行我的第一个功能时出现以下错误。

请帮忙。

我是如何启动此功能的?

  1. 右键单击要素文件
  2. 选择运行方式 - >黄瓜特色
  3. 立即例外 -

    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

    项目中只有这么多。

    请帮忙。

15 个答案:

答案 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 文件中添加以下内容

&#13;
&#13;
<buildSpec>
  ...
  <buildCommand>
	<name>cucumber.eclipse.steps.jdt.stepsBuilder</name>
	<arguments>
	</arguments>
  </buildCommand>
</buildSpec>
<natures>
  ...
  <nature>cucumber.eclipse.steps.jdt.stepsNature</nature>
</natures>
&#13;
&#13;
&#13;

如果这不能解决问题,  添加依赖

  

黄瓜-java的

在项目类路径中或将jar的版本更改为latest或n-1

答案 5 :(得分:0)

我对黄瓜java的依赖来自pom。删除后,效果很好

答案 6 :(得分:0)

info.cukes`在此处输入代码 黄瓜-jvm-deps 1.0.5 提供

在您的依赖项中仅保留三个标签(groupId,artifactId和版本)。删除pom.xml中的标签和其他附加标签,然后尝试。

答案 7 :(得分:0)

我已使用以下库的最新版本更新了pom.xml文件。它对我有用。

  • junit
  • 黄瓜java
  • 黄瓜黄瓜

确保使用正确版本的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年,尽管对此话题已经进行了足够的讨论。仍然可以帮助某人。对我来说,使用相同版本的

已解决了该问题
  1. 黄瓜java

  2. 黄瓜汁

  3. 黄瓜芯 依存关系 我的POM片段

    黄瓜 黄瓜java 6.4.0 黄瓜 黄瓜芯 6.4.0 黄瓜 黄瓜准 6.4.0 编译

答案 9 :(得分:0)

尝试在 Eclipse 中运行 Cucumber 功能文件时,我收到了同样的错误消息

以下步骤对我有用:

使用以下库的最新和相同版本更新了我的 pom.xml 文件。

  • cucumber-junit - 1.2.6
  • cucumber-java - 1.2.6
  • cucumber-junit - 1.2.6

我也将'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。

我不是百分百肯定我是否因为这样做而忽略了一个真正的问题。以下是有关我的设置的更多信息:

  • Windows 10
  • Eclipse Neon(4.6.0)
  • Apache Maven 3.5.0
  • Java 1.8

我通过快速命令验证了java和maven已成功安装并在我的机器上运行。我还验证了Maven在我的Eclipse项目中引入了黄瓜-java和黄瓜核心罐。奇

答案 14 :(得分:-1)

添加以下依赖项,我已经解决了该问题

   <dependency>
       <groupId>io.cucumber</groupId>
       <artifactId>cucumber-java</artifactId>
       <version>4.2.6</version>
   </dependency>