2013-07-12 2 views
1

Я отчаянно пытаюсь разрешить выполнение шага исполнения огурца.Cucumber Исполнение шага JUNIT Игнорируется

Я просто следовал простой пример определения функции, тестирования и шаги, как показано ниже:

Feature: Campaign Budget Calculation 

Scenario: Valid Input Parameters 
    Given campaign budget as 100 and campaign amount spent as 120 
    When the campaign budget is less than campaign amount spent 
    Then throw an Error 

Тест:

@RunWith(Cucumber.class) 
@Cucumber.Options(glue = { "com.reachlocal.opt.dbas" }) 
public class CampaignTest { 

} 

Шаги:

public class CampaignTestStepDefinitions { 

    private Campaign campaign; 

    @Given("^a campaign with (\\d+) of budget and (\\d+) of amount spent$") 
    public void createCampaign(int arg1, int arg2) throws Throwable{ 
     CurrencyUnit usd = CurrencyUnit.of("USD"); 
     campaign = new Campaign(); 
     campaign.setCampaignBudget(Money.of(usd, arg1)); 
     campaign.setCampaignAmountSpent(Money.of(usd, arg2)); 
    } 

    @When("^compare the budget and the amount spent$") 
    public void checkCampaignBudget() throws Throwable{ 
     if (campaign.getCampaignBudget().isLessThan(campaign.getCampaignAmountSpent())) { 
      campaign.setExceptionFlag(new Boolean(false)); 
     } 
    } 

    @Then("^check campaign exception$") 
    public void checkCampaignException() throws Throwable{ 
     if (campaign.getExceptionFlag()) { 
      assertEquals(new Boolean(true), campaign.getExceptionFlag()); 
     } 
    } 
} 

Когда я бегу junit, шаги пропускаются, и результаты показывают, что все они игнорируются. Я уже пробовал без клея, но не помогает. Не знаете, почему. Простой пример кода из Интернета, например, добавление 2-х чисел работает нормально. Я запускаю его в проекте Maven/Spring, используя STS.

ответ

0

Попробуйте это,

import org.junit.runner.RunWith; 

import cucumber.api.junit.Cucumber; 

@RunWith(Cucumber.class) 
@Cucumber.Options(format = { "json:target/REPORT_NAME.json", "pretty", 
    "html:target/HTML_REPORT_NAME" }, features = { "src/test/resources/PATH_TO_FEATURE_FILE/NAME_OF_FEATURE.feature" }) 
public class Run_Cukes_Test { 

} 

Это всегда работает для меня.

1

Выражения @Given, @When и @Then не соответствуют файлу функции. Это регулярные выражения, которые должны соответствовать строкам в файле функций.

Например, для характерной линии:

Учитывая бюджет кампании, как сумма 100 и кампания тратится 120

в ступеньках файл, который вы получили:

@Given ("^ кампания с (\ d +) бюджета и (\ d +) суммы потратила $")

("Сумма^бюджет кампании, как (\ d +) и кампании тратятся (\ d +) $")

@Given

Затем он должен соответствовать и:

, но это должно быть не игнорируйте этот шаг.

Просто у вас была такая же проблема, ее легко пропустить в Eclipse, потому что вы все еще получаете зеленый галочку, хотя говорят, что они были проигнорированы.

0

Я также получил ту же ошибку, и получается, что все методы, в соответствии с определениями ступенчатых были частные вместо общественного

Смежные вопросы