2

コードでシナリオ アウトラインを使用しており、シナリオ アウトラインの開始前にいくつかのコードを実行し、シナリオ アウトラインの実行が完了した後にいくつかのコードを実行したいと考えていました。

きゅうりに @Before および @After アノテーションがあることは知っていますが、これらはすべてのシナリオの前後に実行されます。したがって、シナリオのアウトラインと 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)
4

1 に答える 1

3

私の知る限り、直接的な方法はありませんが、シナリオにタグを付けて、回避策としてタグの前後のフックを使用できます。

次に例を示します。

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

于 2015-04-14T09:04:45.287 に答える