使用java获取黄瓜中未定义的场景和步骤

时间:2016-10-24 07:02:17

标签: java selenium junit cucumber

自从2天以来,我一直在与此作斗争。我的测试显示已通过,但测试未在黄瓜+ java中运行,用于Selenium webdriver测试。在控制台中,我收到以下消息

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


You can implement missing steps with the snippets below:

@Given("^User navigate to shopping page$")
public void user_navigate_to_shopping_page() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@When("^user enters data$")
public void user_enters_data() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@When("^clicks on search button$")
public void clicks_on_search_button() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^product should be displayed$")
public void product_should_be_displayed() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

我写了以下跑步者课程

package stepDefinition;
import org.junit.runner.RunWith;

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


@RunWith(Cucumber.class)
@CucumberOptions(
        monochrome=true,
        features = "src/main/resources/feature",
    glue="src/test/java/stepDefinition",
    tags={"@tag2"},
    dryRun = false)
public class TestRunner {   
}

我还会附上项目目录结构的截图

,功能文件是

[![Feature: Checking Functionality
This is a demo test

@tag2
Scenario: Test Login
    Given User navigate to shopping page
    When user enters data
    And clicks on search button
    Then product should be displayed

enter image description here

5 个答案:

答案 0 :(得分:1)

你给出胶水价值的方式是不正确的。你必须以java包格式给出。请改为glue = "stepDefinition"

如果您的当前 stepDefinition 包中有一个包,请说明步骤,其中包含代码。然后胶水变为"stepDefinition.steps"

您应该将功能移至test \ resources文件夹。

答案 1 :(得分:1)

你正试图解决一个难题。也就是说,你正试图修复一些从未奏效的东西。

我的方法是从一些有效的方法开始,然后转换该工作解决方案,直到它支持您的用例。如果我不确定该怎么做,我会以非常小的步骤做到这一点。

工作的起点是Cucumber团队提供的Java骨架。可以在此处找到克隆/下载:https://github.com/cucumber/cucumber-java-skeleton

答案 2 :(得分:0)

我遇到了同样的问题,我尝试了注释中提供的修复以及上述修复,还有一个方面需要研究,这就是step definiton类。 在查看我的步骤定义时,我发现^符号后面有多余的空格。我删除了空格,测试成功。

下面是我遇到问题时的代码。我删除了大写(^)符号后的空格

@Given("^ I open (.*)$")

答案 3 :(得分:0)

您可能要检查创建的包。确保为每个类,测试运行器类,步骤定义类和您的功能创建一个不同的包。

在尝试与我的软件包建立通用关系时遇到了类似的问题(例如,comCucumber.feature,comCucumber.step和comCucumber.runner)。

相信这会有所帮助。

非常感谢

答案 4 :(得分:-2)

您好,将stepdefinition类和测试运行器类放在一个包中