简单的黄瓜测试类通过没有胶水文件

时间:2018-04-10 17:06:49

标签: java junit cucumber bdd cucumber-java

这让我困惑了半天。我似乎无法找到问题。基本上我在我的工作区中有我的测试运行器,功能文件和步骤文件。 java文件在同一个包中(即没有包)。

以下是我的TestRunner.java

import org.junit.Test;
import org.junit.runner.RunWith;

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

@RunWith(Cucumber.class)
@CucumberOptions(features = "test/resources/features", tags = { "~@Ignore" })
public class TestRunner {

    @Test
    public void feature() {
    }
}

我的专题文件helloWorld.feature

Feature: Simple Test Feature

Scenario: Run Scenario ONE
GIVEN step one
WHEN step two
THEN step three

和我的步骤文件CucumberJava.java

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

public class CucumberJava {

    @Given("^step one$")
    public void step_one() {

        System.out.println("step one");
    }

    @When("step two")
    public void step_two() {
        System.out.println("step two");
    }

    @Then("^step three$")
    public void step_three() {
        System.out.println("step three");
    }
}

当我以JUnit执行TestRunner.java时,一切都通过了,但我在控制台中得到以下内容:

0 Scenarios
0 Steps
0m0.000s

为什么?事实上,当我从项目中删除CucumberJava.java时,我得到完全相同的输出。我错过了什么? 我也尝试在glue代码中设置TestRunner.java选项;仍然是相同的结果。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

像Given etc这样的要素文件字在您的要素文件中是大写的。他们需要像Given那样判刑。

MERGE (select * from esqlProductTarget where productid>1000) --the only change here is this line
USING esqlProductSource S
--etc

另外,您可能需要附加一个' src'到跑步者的特征路径。像这样Feature: Simple Test Feature Scenario: Run Scenario ONE Given step one When step two Then step three ,如果你使用的是Maven。也不需要在跑步者中有features = "src/test/resources/features"