我正在将 Serenity-BDD 与黄瓜一起使用,我希望每个功能文件只运行一次某些东西。看起来黄瓜目前不支持这一点。我想知道宁静是否有一些解决方法。
我还尝试在测试套件类中使用 JUnit @BeforeClass、@AfterClass 钩子,但是 2 个注释需要静态方法,并且当时我无法访问 serenity 页面对象方法(当时没有注入实例)。
我正在将 Serenity-BDD 与黄瓜一起使用,我希望每个功能文件只运行一次某些东西。看起来黄瓜目前不支持这一点。我想知道宁静是否有一些解决方法。
我还尝试在测试套件类中使用 JUnit @BeforeClass、@AfterClass 钩子,但是 2 个注释需要静态方法,并且当时我无法访问 serenity 页面对象方法(当时没有注入实例)。
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
}
}
您可以尝试实现 net.thucydides.core.steps.StepListener 接口并通过 SPI 连接它。我在这篇文章的回答中对此进行了描述