带有黄瓜功能挂钩的宁静 bdd

serenity-bdd with cucumber feature hooks

我正在将 Serenity-BDD 与 cucumber 一起使用,我想 运行 每个功能文件只对某些事情进行一次。看起来 cucumber 目前不支持这个。我想知道宁静是否有一些解决方法。

我也尝试在测试套件中使用 JUnit @BeforeClass、@AfterClass 挂钩 class 但是 2 个注释需要静态方法,我当时无法访问宁静页面对象方法(有在那个时间点没有注入实例)。

您可以尝试设置一个静态全局标志,这将确保 before 方法只运行一次。

使用标签设置特征文件。

@RunOnce
Feature: Run Once

在您的步骤定义中使用以下钩子。

    private static boolean onceFlag = true;

    @Before(value="@RunOnce")
    public void beforeOnce(){

        if(onceFlag) {
            onceFlag = false;

            //Your code to write once per feature file

        }
    }

您可以尝试实现 net.thucydides.core.steps.StepListener 接口并通过 SPI 连接它。我在 this post

中的回答中对此进行了描述