方案大纲的setUp和tearDown(cucumber-jvm)

时间:2014-11-13 14:58:42

标签: cucumber cucumber-jvm cucumber-junit

我在我的代码中使用了场景大纲,并希望在场景大纲开始之前执行一些代码,并在场景大纲执行完成后执行一些代码。

我知道黄瓜有@Before和@After注释,但这些注释在每个scneario之前和之后执行。因此,如果我有一个场景大纲和3行示例数据,那么@Before和@After将分别执行每次3次。

但我只想执行一次,@Before场景大纲和@After场景大纲就是这样!有没有办法在cucumber-jvm中实现这个目标?

//@Before (some code that should be executed before scenario outline execution begins)

Scenario outline
....
Examples:
|Header1  | Header2 | ..etc
|Data1    | Data2   |

//@After (some code that should be executed after scenario outline execution ends)

1 个答案:

答案 0 :(得分:2)

据我所知,没有直接的方法,但您可以标记您的方案并使用标签的前后挂钩作为解决方法。

以下是一个例子:

Feature: ExampleTagging
    @DoBeforeScenarioX
    Scenario outline
    ....
    Examples:
    |Header1  | Header2 | ..etc
    |Data1    | Data2   |

然后您可以在Java代码中使用它:

@Before("@DoBeforeScenarioX")
public void do_this_before_scenarioX() {....}

@After("@DoBeforeScenarioX")
public void do_this_after_scenarioX() {....}

以下是描述的标签:https://github.com/cucumber/cucumber/wiki/Tags