【问题标题】:Run feature file with cucumber java使用黄瓜 java 运行功能文件
【发布时间】:2018-02-28 18:03:22
【问题描述】:

我正在尝试使用 java 和 intellij 运行一个简单的功能文件,但似乎无法正常工作。

我已经设置了我的 Cukes 测试运行器类

package config;

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

@RunWith(Cucumber.class)
@CucumberOptions(monochrome = true,
    features = {"src/test/resources/features/"},
    dryRun = false,
    glue = "com.ecs.googleuat"
)
public class RunCukesTest {
}

特点: 特色:家 场景:家 鉴于我在主页上

步骤定义:

import cucumber.api.PendingException;
import cucumber.api.java.en.Given;

public class MyStepdefs {
@Given("^I am on the home page$")
public void iAmOnTheHomePage() {
    System.out.println("Hello");
}
}

项目结构:

我正在使用带有 java cucumber 插件的 maven 项目。

当我运行功能文件时,我收到以下错误:

未定义步骤:假设我在主页上

1 个场景(1 个未定义) 1 个步骤(1 个未定义) 0m0.000s

您可以使用下面的 sn-ps 实现缺少的步骤:

@Given("^I am on the home page$")
public void i_am_on_the_home_page() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}

进程以退出代码 0 结束

请帮助我理解我做错了什么。

谢谢

【问题讨论】:

  • 胶水com.ecs.googleuat是什么?
  • 你能添加一个扩展项目结构的图像,尤其是java部分吗?
  • @VinayPrajapati 这是groupID,我以为是胶水,我显然错了
  • 删除 groupId 后出现什么错误?
  • 这意味着黄瓜找不到你的胶水。尝试在您的 src/test/java 中创建一个目录并将其附加到您的跑步者glue = "com.ecs.googleuat" 中提供的位置

标签: java intellij-idea cucumber cucumber-jvm


【解决方案1】:

不是 100% 确定,但我认为问题出在方法名称上。简单的解决方案只需将建议的步骤定义复制粘贴到MyStepdefs 中并删除异常并添加您的println 然后运行。还可以尝试去除您添加的胶水com.ecs.googleuat

请关注this以获得更多帮助!

虽然我强烈建议继续使用java-8

无论如何,如果您对Java-8 感到满意。去除RunCukesTest.java中的胶水。并更新您的MyStepdefs.java

  public class MyStepdefs implements En {
      public Stepdefs() {
        Given("^I am on the home page$", () -> {
           System.out.println("Hello");
        });
     }
 }

En 自动为您实现默认 Glue。

另外,使用适当的依赖项。关注this 相同。

编辑: 对于 Java 8,请确保如果您使用的是 IntelliJ Idea,则 Project SDK 已启用到 1.8

【讨论】:

  • 所以我切换到 jdk 1.8 并且该方法抛出了一些错误。 En 需要实现,Stepdefs 需要返回类型,并且给定的步骤需要预期的方法调用
  • 我在上面放了一个例子你也试过了吗?
  • 对不起,我应该更清楚,是的,我在切换到 jdk 1.8 后尝试了你建议的方法,它给了我之前所说的错误。谢谢
  • C:\dev\javalab\googleuat\src\test\java\MyStepdefs.java 错误:(5, 12) java: 方法声明无效;需要返回类型错误:(6, 45) java: lambda 表达式在 -source 1.5 中不受支持(使用 -source 8 或更高版本来启用 lambda 表达式)
  • 您使用的是 Intelli J Idea?说明你使用的java还不是1.8版本。所以,我已经编辑了你需要在 Idea 中更改的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
相关资源
最近更新 更多