当前位置: 首页 > 知识库问答 >
问题:

面对错误"cucumber.runtime.Cucumber异常:未找到后端。"

岳均
2023-03-14

我正在使用Cucumber设置处理Selenium,运行TestRunner文件时遇到错误。

cucumber运行时。cucumber例外:未发现后端。请确保在类路径上有后端模块。

波姆。xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>Automation</groupId>
  <artifactId>Cucumber</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Cucumber</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>

<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>1.2.5</version>

</dependency>


<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>1.2.5</version>
    <scope>test</scope>
</dependency>


    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>      
    </dependency>
  </dependencies>
</project>

我已将功能文件映射到StepDefinition文件,如下所示功能文件功能:登录功能

场景:主页默认登录给定用户在主页当用户以有效凭据登录到应用程序时,用户应该登录到应用程序,登录页面应该显示给用户

STEP定义文件

package stepDefenition;

import org.junit.runner.RunWith;
import cucumber.api.junit.Cucumber;

import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
import cucumber.api.java.en.Then;

@RunWith(Cucumber.class)
public class StepDefenition {

    @Given("^User is on Home page$")
    public void user_is_on_home_page() throws Throwable {
        System.out.println("User is on Home Page");
    }

    @When("^User logs into application with valid credentials$")
    public void user_logs_into_application_with_valid_credentials() throws Throwable {
        System.out.println("User enters valid credentials and clicks on submit");

    }

    @Then("^User should be logged into application and landing page should be displayed to user$")
    public void user_should_be_logged_into_application_and_landing_page_should_be_displayed_to_user() throws Throwable {
         System.out.println("User logged in successfully and landing page is displayed to user  with all the details");
    }

}

测试运行程序文件:

package cucumberOption;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/java/features",
        glue="stepDefenition")

public class TestRunner {   

}

我使用的版本:

  • Neon.3版本(4.6.3)的Eclipse
  • 天然0.7.6cucumber插件
  • Maven版本:Apache Maven 3.6.3
  • Java版本:java版本"1.8.0_241"

项目结构

我尝试过更改java和JUnit的版本,并添加我o.cucumber依赖项,但没有成功。

将java 1.8 jdk添加到项目构建路径。

我已经查看了关于这种问题的所有以前的线程。

共有1个答案

巫马承德
2023-03-14

我不明白您为什么在步骤def类中使用@RunWith注释。cucumber将自动通过cucumberRunner运行它,因此您可以从Runner类或通过功能文件(场景级别或整个功能文件)执行测试,而不使用任何@RunWith注释。这可能是您出错的原因,请参见下面的异常:

cucumber运行时。cucumber例外:

用@RunWith(Cucumber.class)注释的类不能定义任何步骤定义或钩子方法。它们的唯一目的是作为JUnit的入口点。步骤定义和挂钩应该在它们自己的类中定义。这使得它们可以跨功能重用。冒犯类:com类。美国广播公司。StepDefs。FWFeatureTestSteps(用于ex)。

另外,您不需要在pom中有单独的junit依赖项,只要您希望cucumber完成任务,只有cucumber junit就足够了。注意:不要混合io。cucumber和信息。cukes,随便用一个。两者混合也会导致同样的异常。

 类似资料:
  • 在Tomcat服务器中部署代码后,我在浏览器中查看所有页面时都收到一条找不到的错误消息。 例如:- 未找到 /BOOKS/web/Index.html。 我在网络文件夹下有Index.html的文件。这是一个Spring-MVC框架应用程序。 下面是错误日志详细信息。 错误日志 请帮帮忙。

  • 所以我刚刚开始使用Codeception(我知道,我玩游戏迟到了)和Yii2。我遇到了一个错误,我似乎没有得到纠正。 问题 当我运行'代码欺骗运行'时,我得到错误'错误与消息'类yii\代码欺骗\TestCase未找到'。这对我来说很奇怪,因为当我寻找测试案例时,我可以找到多个测试案例!F. e.在文件夹后端,控制台,... 信息 Codeception已在全球范围内安装 我做错了什么? 如果你们

  • 问题内容: 我从这篇博客文章中获得了帮助: 但是我发现com.mysql.jdbc.driver类未找到异常。那篇博客文章的不同之处在于,在我的案例中,他们尝试连接到mysql而不是MS SQL。到目前为止,这是我的代码:package com.example.dbtry; 请告诉我我在做什么错。我还在清单中添加了对Internet的许可。 问题答案: 从以下位置下载jar:http://www.

  • 我在将Web应用程序部署到WebLogic服务器12c时遇到问题。Web应用程序依赖于服务jar(内部依赖于Hibernate类)。当我构建战争时,它不包括Web应用程序的WEB-INF/lib/文件夹中的hibernate-entitymanager.jar,并且它的部署失败,例外是“ClassNotFoundExceptionorg.hibernate.ejb.HibernatePeraxy”

  • 我的应用程序超过了64k个方法,所以我应该实现多索引,最初我遇到的问题是“本地路径不存在”,我解决了这个问题,现在gradle生成了类1。dex和classes2。dex,但在低于Lollipop的环境中不工作。。它在Lollipop中工作得很好,因为它有天然的支持。错误是这样说的“ 看过一些教程后,他们说必须改变1.gradle2.application3.manifest 我对申请课了解不多.

  • 我试图通过JWS为我的java项目分发签名jar,我所做的是 我已经把我的班级档案装进了一个罐子 使用keytool-keytool-genkey-keystore xxx-alias xxx创建密码 使用jarsigner-keystore xxx测试对jar进行签名。jar xxx-命令 但我的错误是没有发现类异常。太阳安全工具。贾西纳。 我使用的是JDK1.6.0.21。我试着打开工具。ja