我正在尝试从Windows命令行(Windows 10)运行Cucumber cli。到目前为止一切都很好。我可以从正确的位置加载* .feature文件,并告诉我需要实现哪些方法。我在类方法上使用@ Give,@ When,@ Then表示法创建了一个类,然后干净地编译了我的类。

.class文件位于Eclipse Project的\ bin目录的com \ company \ automation \子目录中,所有支持的jar文件都位于C:\ java中。我在.bat文件中使用以下语法尝试运行,但是Cucumber报告它找不到我的方法,并提示我编写这些“缺少的步骤”。

我正在使用的命令是:

java -classpath“ C:\ java \ *”;“ C:\ Users \ Mark \ workspace \ Company Automation \ bin \ *” cumul.api.cli.Main-胶水“ C:\ Users \ Mark \ workspace \ Company Automation \ bin \ com \ company \ automation“” C:\ Users \ Mark \ workspace \ Company Automation \ Features“

我对“缺失步骤”的实现如下:

package com.company.automation;

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

public class CucumberImplementation {

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

    @When("^I visit \"([^\"]*)\"$")
    public void i_visit(String arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^there must be a \"([^\"]*)\" element$")
    public void there_must_be_a_element(String arg1) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" element$")
    public void the_element_must_contain_a_element(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^the \"([^\"]*)\" element must contain a \"([^\"]*)\" link$")
    public void the_element_must_contain_a_link(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

    @Then("^there must be a \"([^\"]*)\" element after the \"([^\"]*)\" element$")
    public void there_must_be_a_element_after_the_element(String arg1, String arg2) throws Throwable {
        // Write code here that turns the phrase above into concrete actions
        throw new PendingException();
    }

}


我已经为--glue选项尝试了各种不同的路径形式,包括classpath:com.company.automation,classpath:com.company.automation.CucumberImplementation.class和类似的东西,但带有反斜杠和正斜杠。看来,无论我在--glue选项的参数中使用哪种语法,Cucumber似乎都完全忽略了它,甚至没有在第一步中抛出PendingException。它也不会抱怨--glue选项的参数是无效的路径,如果我只是在其中放置乱码的话。

以黄瓜核心1.2.4.jar为基础。

最佳答案

有同样的问题。

这就是我解决的方法(感谢上面的评论):

--glue com.test.app


其中“ com.test.app”是我的步骤定义文件的软件包。

09-10 20:44