如何确定当前场景是否为第N个?

时间:2014-08-08 14:10:38

标签: cucumber cucumber-jvm

我正在使用Scenario Outline ExamplesExamples有很多行。例如。 10行。我有一个After钩子,我检查方案passsed or failed的结果并将其写入文件。现在我需要在执行最后一行后保存并关闭该文件。如何确定当前场景是否是最后一个场景?

2 个答案:

答案 0 :(得分:0)

一个选项是显式标记最后一个示例,并为该标记设置After hook,如下所示:

@others
Examples:
|input|
| abc |
| xyz |
@last
Examples:
|input|
| pqr |

@After("@last")
public void afterScenario() {


}

答案 1 :(得分:0)

你需要像@AfterAll Hook这样的东西,目前黄瓜不支持这个,但你可以使用这个使用jvm shutdown钩子的变通方法。 :

static void addShutdownHook(WebDriver driver) {
    Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        public void run() {
            // DO STUFF LIKE SAVING YOUR FILE
            driver.quit();
        }
    });
}

共享驱动程序示例中包含的完整示例:https://github.com/cucumber/cucumber-jvm/blob/master/examples/java-webbit-websockets-selenium/src/test/java/cucumber/examples/java/websockets/SharedDriver.java