2

我正在将 Serenity-BDD 与黄瓜一起使用,我希望每个功能文件只运行一次某些东西。看起来黄瓜目前不支持这一点。我想知道宁静是否有一些解决方法。

我还尝试在测试套件类中使用 JUnit @BeforeClass、@AfterClass 钩子,但是 2 个注释需要静态方法,并且当时我无法访问 serenity 页面对象方法(当时没有注入实例)。

4

2 回答 2

3

You could try setting up a static global flag which will make sure that the before method will runs only once.

Setup the feature file with a tag.

@RunOnce
Feature: Run Once

Use the following hook in your stepdefinition.

    private static boolean onceFlag = true;

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

        if(onceFlag) {
            onceFlag = false;

            //Your code to write once per feature file

        }
    }
于 2017-05-23T15:41:54.923 回答
0

您可以尝试实现 net.thucydides.core.steps.StepListener 接口并通过 SPI 连接它。我在这篇文章的回答中对此进行了描述

于 2021-04-09T11:46:39.667 回答