2017-08-08 92 views
1

我在Eclipse中有一个小的cucumber-JUnit示例,我可以成功运行。之后,我重新命名了Package的名称,并稍稍使用了代码。但现在抱怨说: -在黄瓜中找不到步骤定义java

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 = {"[email protected]"}, 
     //glue = {"src/test/java/cucumber/junit/maven/cucumber_jvm/maven"}  
     glue = {"src/test/java/cucumber/junit/test"} 

    ) 
    public class RunCalculatorTest {  

    } 

enter image description here

我仔细检查了路径胶水,它是正确的。我也更新了我的项目并完成了mvn clean install。有人能指出为什么没有找到stepdefinition?

+0

尝试将'glue'选项更改为:'glue = {“cucumber.junit.test”}'或'glue =“cucumber.junit.test”'。我认为它正在寻找一个软件包名称。 –

+0

正是这个问题。感谢您的超级快速回答。你可以将它作为答案发布,然后我将接受它作为答案。我仍然想知道它什么时候需要路径和包名。因为早些时候它已经成功地使用了路径。 – Ragini

+0

应该使用路径,你可以试试'glue =“src/test/java/cucumber.junit.test”'? –

回答

1

胶水选项可能正在查找软件包名称。试试这个:

glue = {"cucumber.junit.test"}

glue = "cucumber.junit.test"

看看这个post,这是一个有点老,但应该让你在任何时间开始。

+0

只是为了让别人知道以上两条建议的工作! – Ragini