在 Cucumber 中找不到步骤定义 java
Step Definition not found in Cucumber java
我在 Eclipse 中有一个小的 cucumber-JUnit 示例,我可以 运行 成功。之后,我重命名了包名称并稍微修改了代码。但现在它抱怨说:-
Feature: Calculator
I use Calculator instead of calculating myself
@smokeTest
Scenario Outline: Add two numbers # src/test/java/cucumber/junit/test/calculatorFeature.feature:17
Given I have a calculator
When I add 2 and 3
Then the result should be 5
@smokeTest
Scenario Outline: Add two numbers # src/test/java/cucumber/junit/test/calculatorFeature.feature:18
Given I have a calculator
When I add 4 and 5
Then the result should be 9
@regressionTest
Scenario: Subtract one number from another # src/test/java/cucumber/junit/test/calculatorFeature.feature:21
Given I have a calculator
When I subtract 2.5 from 7.5
Then the result should be 5.0
3 Scenarios (3 undefined)
9 Steps (9 undefined)
0m0,000s
You can implement missing steps with the snippets below:
@Given("^I have a calculator$")
public void i_have_a_calculator() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I add (\d+) and (\d+)$")
public void i_add_and(int arg1, int arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the result should be (\d+)$")
public void the_result_should_be(int arg1) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I subtract (\d+)\.(\d+) from (\d+)\.(\d+)$")
public void i_subtract_from(int arg1, int arg2, int arg3, int arg4) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the result should be (\d+)\.(\d+)$")
public void the_result_should_be(int arg1, int arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
我的跑步者看起来像:
package cucumber.junit.test;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/java/cucumber/junit/test/calculatorFeature.feature",
//This executes all the scenarios tagged as smokeTest and regressionTest
format = {"pretty", "html:target/cucumber"}, tags = {"@smokeTest,@regressionTest"},
//This will execute all the scenarios except those tagged as smokeTest
// tags = {"~@smokeTest"},
//glue = {"src/test/java/cucumber/junit/maven/cucumber_jvm/maven"}
glue = {"src/test/java/cucumber/junit/test"}
)
public class RunCalculatorTest {
}
我仔细检查了下胶的路径,是正确的。我还更新了我的项目并完成了 mvn clean install。有人可以指出为什么找不到 stepdefinition 吗?
Glue 选项可能正在寻找包名。试试这个:
glue = {"cucumber.junit.test"}
或
glue = "cucumber.junit.test"
看看这个 post,它有点旧,但应该可以让您立即开始。
我在 Eclipse 中有一个小的 cucumber-JUnit 示例,我可以 运行 成功。之后,我重命名了包名称并稍微修改了代码。但现在它抱怨说:-
Feature: Calculator
I use Calculator instead of calculating myself
@smokeTest
Scenario Outline: Add two numbers # src/test/java/cucumber/junit/test/calculatorFeature.feature:17
Given I have a calculator
When I add 2 and 3
Then the result should be 5
@smokeTest
Scenario Outline: Add two numbers # src/test/java/cucumber/junit/test/calculatorFeature.feature:18
Given I have a calculator
When I add 4 and 5
Then the result should be 9
@regressionTest
Scenario: Subtract one number from another # src/test/java/cucumber/junit/test/calculatorFeature.feature:21
Given I have a calculator
When I subtract 2.5 from 7.5
Then the result should be 5.0
3 Scenarios (3 undefined)
9 Steps (9 undefined)
0m0,000s
You can implement missing steps with the snippets below:
@Given("^I have a calculator$")
public void i_have_a_calculator() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I add (\d+) and (\d+)$")
public void i_add_and(int arg1, int arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the result should be (\d+)$")
public void the_result_should_be(int arg1) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@When("^I subtract (\d+)\.(\d+) from (\d+)\.(\d+)$")
public void i_subtract_from(int arg1, int arg2, int arg3, int arg4) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
@Then("^the result should be (\d+)\.(\d+)$")
public void the_result_should_be(int arg1, int arg2) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new PendingException();
}
我的跑步者看起来像:
package cucumber.junit.test;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;
@RunWith(Cucumber.class)
@CucumberOptions(
features = "src/test/java/cucumber/junit/test/calculatorFeature.feature",
//This executes all the scenarios tagged as smokeTest and regressionTest
format = {"pretty", "html:target/cucumber"}, tags = {"@smokeTest,@regressionTest"},
//This will execute all the scenarios except those tagged as smokeTest
// tags = {"~@smokeTest"},
//glue = {"src/test/java/cucumber/junit/maven/cucumber_jvm/maven"}
glue = {"src/test/java/cucumber/junit/test"}
)
public class RunCalculatorTest {
}
我仔细检查了下胶的路径,是正确的。我还更新了我的项目并完成了 mvn clean install。有人可以指出为什么找不到 stepdefinition 吗?
Glue 选项可能正在寻找包名。试试这个:
glue = {"cucumber.junit.test"}
或
glue = "cucumber.junit.test"
看看这个 post,它有点旧,但应该可以让您立即开始。