带有黄瓜功能挂钩的宁静 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
中的回答中对此进行了描述
我正在将 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
中的回答中对此进行了描述