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

Cucumber在运行代码时找不到步骤定义,但手动使用“find Step”选项可以找到步骤定义

夹谷信鸿
2023-03-14

在如下定义的项目结构中,

  • src/main/java--Config(RunCukesTest.java)--步骤定义

当我使用RunAs从RunCukes Test.java运行时-

当我单击查找步骤时,打开正确的文件。不明白问题出在哪里,因为代码几天前就运行了。文件从这里下载

https://drive.google.com/open?id=0B4SgyzyvwKhiVTRmRDZuNXNTSjA

转轮类代码

package helpers;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
//features= "src/test/resources/features/navigation",

@RunWith(Cucumber.class)
@CucumberOptions(
        features = {"classpath:features"},
        plugin = {"pretty", "html:target/cucumber-html-report"},
        tags = {"@OnlyOneTime"},
//      dryRun = true,
        monochrome = true
        )
public class RunCukesTest{

}

共有3个答案

顾乐池
2023-03-14
匿名用户

我解决了你的问题,根据你的运行类,粘合路径没有设置。请设置粘合路径。<代码>胶水={"步骤定义"}

package helpers; 
import org.junit.runner.RunWith; 
import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 
//features= "src/test/resources/features"@RunWith(Cucumber.class) @CucumberOptions( 
features = {"classpath:features"}, glue={"stepDefinitions"},plugin = {"pretty", "html:target/cucumber-html-report"}, tags = {"@OnlyOneTime"}, // dryRun = true, monochrome = true ) 
public class RunCukesTest{ }

赵高雅
2023-03-14

将其作为Cucumber特性运行,效果很好,但如果我提供glue={“stepDefinitions”}并尝试从runner运行它,则会抛出NullPointerException,

这个问题是由于钩子没有被找到而引起的。但是如果我把@之前和@之后移动到SDLogin类,那么它工作得很好。

云宾鸿
2023-03-14

胶水代码应该有挂钩和步骤定义的路径

因此修改为glue={“helpers”,“stepDefinitions”}而不是glue={“helpers”,“classpath/stepDefinitions”,“classpath/stepDefinitions.LogIn”,“classpath/stepDefinitions.Publish”}

请参考github上类似问题的链接

 类似资料:
  • 测试步骤: 我试过“abc”,“^abc”,“give abc”...在@gived上 我用下面的bat文件和步骤定义来驱动它,并且类文件就在那里。在-g(glue)选项中,我意识到包名是参数值,所以我尽可能简单地实现了这一点,但我只找到了0个场景。bat文件很简单: 如果*.feature文件是cucumber运行的必要条件,并且即使junit被挂到cucumber.class测试运行程序中,它

  • 我遇到了以下问题。我在Intellij中有四个Cucumber特性文件。我通过IntelliJ插件添加了Cucumber支持。在创建了特性之后,我按如下所示编辑了配置,这样我就可以执行特性文件了。 可悲的是,当我尝试使用步骤定义运行cucumber特性时,我得到的提示是“您可以使用下面的代码片段实现缺少的步骤:”但我已经这样做了。我已经将这些片段复制到步骤定义文件中。当我悬停一个场景时,Intel

  • 问题 Cucumber在使用CLI运行程序运行时找不到步骤定义,但在使用junit运行程序运行时可以找到。 也就是说,当从linux命令行运行cucumber-jvm时,找到了特性文件,但未找到步骤定义文件,从而生成消息 (完整消息请参阅底部) 但是,通过Maven(例如'mvn test')运行时,会找到步骤定义,并按预期执行测试。我已经复习过类似的问题了,在我秃顶之前,我会很感激你的帮助。 -

  • cucumber runner类似乎找不到步骤定义类,但它可以找到功能文件。 功能文件: 步骤定义类: 跑步者等级: 作为JUnit测试运行Runner类的输出: 我只是将输出复制并粘贴到我的步骤定义类中,它仍然无法识别步骤定义类。早些时候,它说场景中的每一步都没有匹配的粘合代码,但是在我关闭并重新打开功能文件后,这种情况就消失了。

  • TL:DR控制台不显示缺少步骤的步骤正则表达式 编辑:添加功能文件

  • 我正尝试在类似UNIX的命令行上使用Maven运行Cucumber(不幸的是,我被迫使用Windows,尽管cmd.exe具有相同的结果): 结果如下: 我查看了所有Google/SO搜索结果的顶部,以查找此错误信息和类似错误信息。许多例子,例如Cucumber在运行单个特性时找不到步骤,以及Cucumber找不到步骤定义,都说要用和--require参数指定步骤定义,但它们似乎在某个时候从Cuc