【问题标题】:Exception in thread "main" cucumber.runtime.CucumberException: No backends were found线程“主” cucumber.runtime.CucumberException 中的异常:未找到后端
【发布时间】:2014-09-18 22:26:20
【问题描述】:

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

请帮忙。

我是如何启动该功能的 -

  1. 右键功能文件
  2. 选择运行方式 -> Cucumber 功能

立即异常 -

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

项目中只有这么多可用。

请帮忙。

【问题讨论】:

  • 你能发布你的 pom.xml 文件吗

标签: java selenium-webdriver cucumber-jvm


【解决方案1】:

确保为 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>

【讨论】:

  • 此外,黄瓜的版本必须与您的 Java 版本正确 - 添加 com.github.mkolisnyk 时,我必须对 'io.cucumber' 和 'info.cukes' 进行排除组:cucumber-runner,因为它引入了旧版本
  • 确保 Cucumber 的所有依赖项都是相同的版本。请注意,我们目前处于 v4 并计数。另请注意,从 v2 开始,groupIdinfo.cukes 更改为 io.cucumber
【解决方案2】:

当在类路径上找不到“后端”时会引发此错误。每种支持的语言都有一个“后端”(例如 cucumber-java、cucumber-groovy 等)

这可能是一个类路径错误,虽然如果 cucumber-core 和 cucumber-java 位于同一个位置,这看起来确实很奇怪。

【讨论】:

  • 如何为 gradle 做这个?
  • 将黄瓜依赖项添加到您的 gradle 构建文件中
【解决方案3】:

您可以在https://mvnrepository.com/artifact/info.cukes/cucumber-java/1.2.4 试用 cucumber-java-1.2.4。

我发现尝试相同 JAR 文件的早期版本对我有用。 我想这也可以解决其他人。如果没有,请添加另一个答案。

让我知道它是否对您有用并节省了一些宝贵的时间:-)

【讨论】:

    【解决方案4】:

    写于 2020 年,尽管关于这个话题已经进行了足够多的讨论。如果它对某人有帮助的话。对我来说,问题得到了相同版本的解决

    1. 黄瓜-java

    2. 黄瓜-junit

    3. 黄瓜核 依赖关系 我的 POM 的 sn-p

      io.黄瓜 黄瓜-java 6.4.0 io.黄瓜 黄瓜芯 6.4.0 io.黄瓜 黄瓜君 6.4.0 编译

    【讨论】:

      【解决方案5】:

      您没有提供步骤定义类的路径 在黄瓜选项中添加胶水可能会有所帮助。

      @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 )
      

      【讨论】:

        【解决方案6】:

        对所有依赖项使用最新且相同的版本,它工作正常。

        <dependencies>
                <dependency>
                    <groupId>io.cucumber</groupId>
                    <artifactId>cucumber-core</artifactId>
                    <version>6.11.0</version>
                </dependency>
                <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.11.0</version>
                </dependency>
                <dependency>
                    <groupId>io.cucumber</groupId>
                    <artifactId>cucumber-junit</artifactId>
                    <version>6.11.0</version>
                </dependency>
            </dependencies>
        

        【讨论】:

        • 它对我上面的版本有所帮助。谢谢你
        【解决方案7】:

        这里是修复: 在 Eclipse 项目中,在 .project 文件中添加以下内容

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

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

        黄瓜-java

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

        【讨论】:

          【解决方案8】:

          我在 cucumber-java 的依赖项中有 pom。一旦我删除它工作正常

          【讨论】:

            【解决方案9】:

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

            • junit
            • 黄瓜-java
            • 黄瓜-junit

            确保您使用的是正确版本的 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>
            

            【讨论】:

              【解决方案10】:

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

              以下步骤对我有用:

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

              • 黄瓜-junit - 1.2.6
              • 黄瓜-java - 1.2.6
              • 黄瓜-junit - 1.2.6

              我也将“junit”更新到最新版本

              【讨论】:

                【解决方案11】:

                错误只是表示您的设备上没有正确配置黄瓜。 这可能是因为缺少依赖项或依赖项未正确加载。 首先检查依赖关系,然后全部保存,关闭编辑器,然后重新打开它。 尝试再次运行并检查。

                【讨论】:

                • 代替描述性答案,提供代码 sn-p 或示例以清晰说明答案
                【解决方案12】:

                从 POM.XML 中删除了 Cucumber Core 依赖,它工作正常

                【讨论】:

                  【解决方案13】:

                  在 2021 年发表评论。这可能会对某人有所帮助。 问题很简单,cucumber groupid 已更改为 >io.cucumberinfo cukes

                  【讨论】:

                    【解决方案14】:
                    <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-jvm-deps -->
                    <dependency>
                        <groupId>info.cukes</groupId>
                        <artifactId>cucumber-jvm-deps</artifactId>
                        <version>1.0.5</version>
                        <scope>provided</scope>
                    </dependency>
                    

                    在依赖项中只保留三个标签(groupIdartifactIdversion)。删除&lt;scope&gt;pom.xml中的其他附加标签,然后尝试。

                    【讨论】:

                      【解决方案15】:

                      我在尝试在 Eclipse 中运行 Cucumber 功能文件时遇到了同样的错误消息(“未找到后端。请确保您的 CLASSPATH 上有后端模块”)。

                      为我解决的问题是进入我的 pom.xml 并将 cucumber-java 和 cucumber-junit 版本从 1.2.5 (per their documentation) 更改为 1.2.0。

                      我不能 100% 确定这样做是否忽略了一个真正的问题。以下是有关我的设置的更多信息:

                      • Windows 10
                      • Eclipse 霓虹灯 (4.6.0)
                      • Apache Maven 3.5.0
                      • Java 1.8

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

                      【讨论】:

                        【解决方案16】:

                        添加以下依赖我解决了这个问题

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

                        【讨论】:

                          猜你喜欢
                          • 2020-07-26
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2022-07-30
                          • 2015-12-08
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多