如何自动将db:seed数据加载到测试数据库中?

我正在尝试使用新的标准方法在db:seedrake 2.3.4+中加载种子数据,这是rake任务。


我正在加载常量数据,这是我的应用程序真正正常运行所必需的。


使db:seed任务在测试之前运行的最佳方法是什么,以便预先填充数据?


拉风的咖菲猫
浏览 791回答 3
3回答

慕容森

我说应该namespace :db do  namespace :test do    task :prepare => :environment do      Rake::Task["db:seed"].invoke    end  endend因为如果您有config.active_record.schema_format =:sql,则不会执行db:test:load(db:test:clone_structure是)

慕田峪4524236

您可以用来Rails.application.load_seed将种子数据加载到测试环境中。但是,何时以及何时加载此数据取决于以下几件事:使用Minitest在进行所有测试之前,没有一种方便的方法可以运行一次此文件(请参阅此Github问题)。您需要在每次测试之前加载一次数据,这很可能是在测试文件的设置方法中进行的:# test/models/my_model_test.rbclass LevelTest < ActiveSupport::TestCase  def setup    Rails.application.load_seed  end  # tests here...end使用RSpec使用RSpec的before(:all)方法为该模型的所有测试加载种子数据:describe MyModel do  before(:all) do  Rails.application.load_seedenddescribe "my model..." do  # your tests hereend希望这可以帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB
Ruby