如何让JBehave忽略失败的场景?

时间:2012-08-30 08:09:19

标签: jbehave

Scenario A:
Step A - PENDING
Step B - PENDING

Scenario B:
Step C - Implemented
Step D - Implemented

运行故事时,步骤C和D设置为未执行。即使方案A由于挂起的步骤而失败,如何让它们运行?

我已经尝试将PendingStepStrategy设置为PassingUponPendingStep(和FailingUponPendingStep),但它没有什么区别。

2 个答案:

答案 0 :(得分:8)

JBehave可以配置为在场景之间跟踪状态。我认为这样做的原因是为了说明何时想要有相互关联的场景。

如果您检查使用的配置,那么您应该能够看到StoryControls集上是否有某个参数。

例如

Configuration configuration = new MostUsefulConfiguration()
    .useStoryControls(new StoryControls().doResetStateBeforeScenario(false))
...

如果您具有上述设置,则不会执行其他方案,因为保留了故障状态

您可以在配置中使用JBehaves MostUsefulConfiguration类而无需额外配置,因为默认情况下doResetStateBeforeScenario设置为true。

答案 1 :(得分:0)

无论如何都要运行这些步骤。我认为您在声明场景的行中可能有错误,而JBehave认为这四个步骤属于同一场景。

场景由令牌场景分隔,例如

Scenario: Use a pattern variant
When the item cost is 10.0
When the price is 10.0
When the cost is 10.0


Scenario: Use a aliases variant
Then the item price is 10.0
Then the item price becomes 10.0
Then the item price equals to 10.0

即使第一个场景中的任何步骤失败,第二个场景也会运行。