尽管我定义了黄瓜,但仍会执行未定义的消息

时间:2019-03-20 20:34:43

标签: cucumber cucumber-java

当我运行Cucumber测试时,即使在实现步骤定义之后,控制台O / P仍指出未定义步骤。为什么会这样?

**Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
Mar 21, 2019 1:28:49 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS

Feature: Automation

  Scenario: Login Test                  [90m# Login.feature:3[0m
    [33mGiven [0m[33mUser opens the browser[0m
    [33mGiven [0m[33muser is on the login page[0m
    [33mThen [0m[33muser logs into the application[0m
    [33mThen [0m[33muser is in home page[0m

1 Scenarios ([33m1 undefined[0m)
4 Steps ([33m4 undefined[0m)
0m0.000s


You can implement missing steps with the snippets below:

@Given("^User opens the browser$")
public void user_opens_the_browser() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Given("^user is on the login page$")
public void user_is_on_the_login_page() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^user logs into the application$")
public void user_logs_into_the_application() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

@Then("^user is in home page$")
public void user_is_in_home_page() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
}

===============================================
Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

2 个答案:

答案 0 :(得分:0)

来自FAQ

”如果Cucumber告诉您未定义步骤,则在定义步骤定义后,这意味着Cucumber无法找到您的步骤定义。您需要确保指定步骤定义的路径(胶水路径) )。

默认情况下,Cucumber-JVM将搜索运行器类的包(或子包)。您还可以使用以下方法明确告知Cucumber-JVM:要搜索哪些软件包(和子软件包):

 @CucumberOptions(glue = {"<package>", "<package>", "<etc>"})
 public class RunCucumberTest{}

答案 1 :(得分:0)

需要检查两件事:

  1. 在运行器文件中检查胶粘剂类

    @CucumberOptions(功能= {“ src / test / resources / features”}, 胶= {“ mention_package_for_Stepsdef_files”}, plugin = {“ pretty”,“ html:target / cucumber”,“ json:target / cucumber / cucumber.json”}, 标签= {“ @tag”}

  2. 检查是否已将stepdef文件类(写有step的定义)声明为privateprotected。它应该公开