【问题标题】:Cucumber-JVM Step definitionsCucumber-JVM 步骤定义
【发布时间】:2015-02-13 11:59:39
【问题描述】:

在 Eclipse 中创建我的功能文件后,我将其作为 Cucumber 功能运行。我使用控制台给我的步骤定义来创建测试文件的第一个基础

@Given("^the input is <(\\d+)> <(\\d+)>$")

这些应该由控制台输出,但目前它显示的功能没有步骤定义。

Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs # src/test/resources/Test.feature:4
    Given: i have a test
    When: i run the test
    Then: i have a working test


0 Scenarios
0 Steps
0m0,000s

这个功能只是为了检查黄瓜是否正常工作。

跑步者:

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

@RunWith(Cucumber.class)
@CucumberOptions(
        monochrome = true,
        dryRun = false,
        format = "pretty",
        features = "src/test/resources/"
        )
public class RunCukes {
}

控制台没有显示所有信息的原因是什么?

TL:DR 控制台不显示缺少步骤的步骤正则表达式

编辑:添加功能文件

Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs
    Given: i have a test
    When: i run the test
    Then: i have a working test

【问题讨论】:

  • 请同时发布您的功能文件。

标签: java cucumber cucumber-jvm cucumber-junit


【解决方案1】:

问题出在功能文件中。在 Given、When 和 Then 之后使用 : 是问题所在。我能够使用您的功能文件重现您的问题。但是,当我删除 : 并使用上面提供的相同 Runner 选项运行功能文件时,我得到了正则表达式来实现缺少的步骤定义。

P.S 我正在使用 IntelliJ,但不要认为它会有所作为。

  Feature: this is a test
  this test is to test if this test works right

  Scenario: test runs # src/test/resources/Test.feature:4
    Given i have a test
    When i run the test
    Then i have a working test

以下是我得到的:

Testing started at 19:12 ...

Undefined step: Given  i have a test

1 Scenarios (1 undefined)
3 Steps (3 undefined)
0m0.000s

Undefined step: When  i run the test

You can implement missing steps with the snippets below:
@Given("^i have a test$")

public void i_have_a_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@When("^i run the test$")
public void i_run_the_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^i have a working test$")
public void i_have_a_working_test() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}


Undefined step: Then  i have a working test

1 scenario (0 passed)
3 steps (0 passed)
Process finished with exit code 0

【讨论】:

  • 是的,谢谢,这似乎是问题所在。总是容易忽略的小事。
【解决方案2】:

如果您的 .feature 文件因某种原因无效,则可能会发生这种情况。我曾经发生过它只是因为我有两个||一起在我的场景大纲的示例表中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2017-01-05
    相关资源
    最近更新 更多