我在我的代码中使用了场景大纲,并希望在场景大纲开始之前执行一些代码,并在场景大纲执行完成后执行一些代码。
我知道黄瓜有@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)
答案 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() {....}