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

Cucumber 如何确定当前场景是否为第N个场景?,cucumber,cucumber-jvm,Cucumber,Cucumber Jvm,我正在使用场景大纲和示例示例有许多行。例如,10排。我有一个After钩子,在那里我检查场景通过或失败的结果,并将其写入文件。现在我需要在执行最后一行后保存并关闭该文件。如何确定当前场景是否是最后一个场景 一个选项是显式标记最后一个示例,并为该标记设置After hook,如下所示: @others Examples: |input| | abc | | xyz | @last Examples: |input| | pqr | @After("@last") public void afte

我正在使用
场景大纲
示例
<代码>示例有许多行。例如,10排。我有一个
After
钩子,在那里我检查场景
通过或失败的结果
,并将其写入文件。现在我需要在执行最后一行后保存并关闭该文件。如何确定当前场景是否是最后一个场景

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

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

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


}

您可能需要@AfterAll钩子之类的东西,cucumber目前不支持这种方法,但您可以使用这种使用jvm关闭钩子的解决方法:

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

共享驱动程序示例中包含的完整示例:

一个选项是分别标记最后一个示例(比如@last),并使用After(@last)钩子。