gpt4 book ai didi

ruby-on-rails - cucumber 试验中的种子数据

转载 作者:行者123 更新时间:2023-12-03 13:50:54 25 4
gpt4 key购买 nike

我正在编写一个使用 SaS 的网络应用程序。每个客户都有自己的 db 和 app 目录,所以我有一个 rake 任务,它创建所有必要的最小数据(种子数据)来运行他们的网站:默认权限和角色、 super 管理员用户、已经填充的“us_states”表、一些本地仓库和终端(这是一个物流应用程序)。

我没有任何 cucumber 场景,我刚刚开始构建一些。我是 cucumber 的初学者。

我首先将种子数据任务放在给定行中,但这几乎是所有场景的给定,对于查看场景的非程序员来说没有多大意义(对于人类来说,这是给定的它不需要有意识地表达)所以我把它移到了 hooks.rb 中。

我的第一个场景如下所示:

  1 Feature: Place an order
2 In order to keep orders in the database
3 As a admin
4 I want to place orders
5
6 Scenario: Using common legs
7 Given I have 1 customers
8 And I'm on the homepage
9 And I follow "Place an Order"
10 When I select the customer
11 And I select the SSLine
12 And I click "Use Common Legs"
13 Then I should see "PICKUP AT"
14 And I should see "DELIVER TO" or "LOAD AT"
15 And I should see EMPTY RETURN

我的 hooks.rb 看起来像这样:
1 Before do
2 MinimumData.new('costi', '1234').populate #username and password
3 end

问题:
  • 我不想在每个场景之前运行这个 MinimumData.populate 任务,因为它需要 8 秒。我应该让它在全局范围内只运行一次吗?如何?
  • 我必须用 After.do 清理数据库吗?我真的不想这样做,因为我将复制 After.do 中的逻辑,仅使用 Model.delete_all 语句。我注意到,在我第一次运行后,测试数据库中仍然存在所有数据。我可以使用 rake db:test:purge 清除它并重新初始化它。这是一个好习惯吗?
  • 最佳答案

    我不知道 before(:all)相当于 cucumber 。您可以做的是将您的种子添加到文件中,例如 features/support/seeds.rb然后在 features/support/env.rb 的顶部在需要您的 environment.rb 的行下方把这条线:

    require File.dirname(__FILE__) + '/seeds'

    或者
    #just write the code you want to execute directly into the env.rb file

    这些是您可以添加到 env.rb 中的可用 block 。
    Before do
    #this code is run before each scenario
    end

    after do
    #this code is run after each scenario
    end

    at_exit do
    #this code is run at the end
    end

    关于ruby-on-rails - cucumber 试验中的种子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3208102/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com