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

创建并填充测试数据库以在其上运行Cucumber测试

管玉堂
2023-03-14

我想用Cucumber测试使用PostgreSQL数据库的Ruby-on-Rails网站。

我还安装了FactoryGirl宝石,这样我就可以创建工厂了。

我知道为测试数据库创建数据的典型方法是编写Gherkin表并将它们放在cucumber文件的后台块中。但是我已经有了一个创建适合测试数据库的samle数据的Ruby脚本。

然而,我现在迷失在cucumber的环境中。您能否建议如何让Cucumber运行我的Ruby脚本,在每次测试前填充测试数据库,以及如何在每次测试后清理测试数据库。显然,我的谷歌功能不足以完成这项任务。

共有1个答案

陶和歌
2023-03-14

只是:

>

  • 向features/clock.feature(例如)添加cucumber规则,如I have 4 clock in the pocket

    在features/step_definition/clock_steps.rb(例如)中实现规则,以创建定义的数量时钟模型和单口袋模型。并将它们关联起来:

    When /I have (\d+) clock in the pocket/ do |amount|
       pocket = FactoryGirl.create :pocket
       amount.times { FactoryGirl.create :clock, pocket: pocket }
    end
    

    因此,您将得到一些填充的数据。

    如果您希望为大多数方案预定义步骤,您可以:

    • 创建一个更大的步骤(例如),称为我有基本时钟设置,然后将其定义为上面的步骤,但添加其他所需的步骤。

    >

  • 使用步骤递归(这是不推荐的方式),如下所示:

    When /I have basic clock setup/ do |amount|
       step 'I have 4 clock in the pocket'
    end
    

  •  类似资料:
    • 我目前正在尝试使用Cucumber实现并行测试运行。我设法使用万无一失的插件同时运行了两个不同的运行程序。现在我想检查是否可以并行运行SingleRunner文件多次。 我有一个签名测试。所以我需要在几个平台上并行运行。有可能吗? 这是我的跑步者档案 无跑道进近 工厂级 `导入org . open QA . selenium . web driver; ` 阶梯班 导入org.openqa.sel

    • 步骤的定义: 这是文件夹的结构 当我运行时,我得到错误: 在步骤的定义中,我仍然从命令行得到相同的错误,但是当我在AS中运行它时,测试成功地运行了(它显示了最后一步的失败,但这是意料之中的)。 如果我用AndroidJunitRunner替换Runner,并添加一个non-cucumber测试,那么一切都正常:我也可以获取上下文。 如果从命令行执行以下步骤: instrumentation_res

    • Cucumber测试没有并行运行(Cucumber jvm并行插件)? 如果我使用runner类执行测试,一次将执行一个功能文件,但是当将以下插件添加到POM文件时,似乎没有功能文件执行? 即使我指向了正确的功能文件文件夹? 我的POM文件:

    • Javav8. x-Springv5. xcucumberv4.2.0 我尝试了temyers/cucumber jvm并行插件,效果很好,但当我进入他们的gitihub页面时,他们宣布停止使用该插件b/c cucumber已经开始支持cucumber jvm 4.0的并行测试运行支持。0 我有使用以下maven依赖项的现有测试。 我有两个问题让我困惑。 为了使用cucumber-jvm,我必须更

    • 我是Serenity和BDD的新手。我有一个基于Serenity Cucumber和Page based模型的小型演示项目。项目结构如下: 登录和注销功能大约有8种情况。 我希望能够并行运行功能文件。实现这一点的最简单和最有效的方法是什么? 到目前为止我已经 > 为每个功能创建了单独的 Runner 类,然后使用故障安全或万无一失的插件 - 这是我不想要的,因为我不希望每个功能文件都有新的运行器。

    • 我正在尝试使用IntelliJ Community edition和Gradle5.5.1运行一个Cucumber/Selenium项目。 我的TestRunner类如下: