当前位置: 首页 > 知识库问答 >
问题:

serenity bdd与cucumber功能挂钩

谢修真
2023-03-14

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

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

共有2个答案

邵昆琦
2023-03-14

可以尝试实现net . Thucydides . core . steps . step listener接口,通过SPI连接。我在这篇文章中回答了这个问题

夏侯野
2023-03-14

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

使用标签设置功能文件。

@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

        }
    }
 类似资料:
  • 我尝试在cucumber中执行特性后执行一个脚本来清理数据库。我使用前后挂钩的方式如下: 对于before,我可以避免使用静态变量在每个场景之前调用脚本。但不知道如何为后钩子做: 有没有办法捕获最后一个方案是否已经执行,并且仅在满足该条件时才触发 clearData()?有没有更优雅的方法?

  • 我在src/test/resources/feature/中有以下功能文件(单独的功能文件),我想并行运行它们。比如:一个功能文件必须在chrome中执行,另一个必须在另一个chrome实例中执行,如@Tags name所述。 我正在使用Java1.2。5版本,AbstractTestNGCucumberTests作为runner。我可以运行一个功能文件,但当我尝试使用cucumber jvm并行

  • 在我的cucumber -jvm、Maven、junit设置中,我的testRunner文件为 我在上面提到的目录中有我的特征文件。 如果运行它,我会得到以下异常: 如果我删除testrunner中的“features”选项,它会尝试在与我的testrunner.java相同的目录中查找功能文件 如果我把功能文件放在那里,它就可以工作了。 我的问题是,为什么我的特征文件没有从我以前的位置提取,我以

  • 假设我有以下功能文件: 我ogin.feature 功能:登录网站 场景:现场登录验证 给定导航到站点登录页 家特色 功能:欢迎页面验证 场景:验证登录后出现的页面 已成功完成给定登录 登录成功后的页面出现时 然后测试完成 在Home.feature文件中,我需要先执行Login.feature,然后调用home.feature.所以当我从运行器测试中执行home时,它会依次执行login,然后是

  • 我需要一些帮助运行一个功能文件。 这是Maven项目的骨架: 这是我的pom.xml文件: 我不能运行功能文件,与此,我不能运行任何与cucumber相关的。你能帮帮我吗? 提前谢了。

  • 我的功能文件如下 end2end_test.feature 我的runner.java文件如下所示 testRunner.java