Selenium webdriver serenity bdd带黄瓜特色挂钩

Selenium webdriver serenity bdd带黄瓜特色挂钩,selenium-webdriver,cucumber-jvm,serenity-bdd,cucumber-serenity,Selenium Webdriver,Cucumber Jvm,Serenity Bdd,Cucumber Serenity,我正在将Serenity BDD与cucumber一起使用,我希望每个功能文件只运行一次某些东西。看起来cucumber目前不支持这一点。我想知道serenity是否有解决办法 我还尝试在测试套件类中使用JUnit@BeforeClass、@AfterClass钩子,但这两个注释需要静态方法,我当时无法访问serenity page objects方法(当时没有注入实例).您可以尝试设置一个静态全局标志,以确保before方法只运行一次 使用标记设置要素文件 @RunOnce Feature:

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


我还尝试在测试套件类中使用JUnit@BeforeClass、@AfterClass钩子,但这两个注释需要静态方法,我当时无法访问serenity page objects方法(当时没有注入实例).

您可以尝试设置一个静态全局标志,以确保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连接它。我在

中的回答中描述了这一点。是否可以在钩子之前的全局测试中,在每次测试运行中实现一次。意味着符文先于所有特征file@Grasshoper对不起,我的意思是,它不仅应该在所有其他功能文件之前运行一次。我在上面试过了,但它并没有在所有其他功能文件之前运行。你应该看看插件系统。TestSourceRead事件可能就是您想要的,我尝试过,但在我的
serenity bdd中,它似乎存在某种依赖性问题。我遵循了这一点。然后,由于依赖冲突,我无法运行测试。这是我目前的状态