我正在尝试从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”是我的步骤定义文件的软件包。