3 回答
TA贡献1853条经验 获得超18个赞
我说应该
namespace :db do
namespace :test do
task :prepare => :environment do
Rake::Task["db:seed"].invoke
end
end
end
因为如果您有config.active_record.schema_format =:sql,则不会执行db:test:load(db:test:clone_structure是)
TA贡献1875条经验 获得超5个赞
您可以用来Rails.application.load_seed将种子数据加载到测试环境中。但是,何时以及何时加载此数据取决于以下几件事:
使用Minitest
在进行所有测试之前,没有一种方便的方法可以运行一次此文件(请参阅此Github问题)。您需要在每次测试之前加载一次数据,这很可能是在测试文件的设置方法中进行的:
# test/models/my_model_test.rb
class 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_seed
end
describe "my model..." do
# your tests here
end
希望这可以帮助。
- 3 回答
- 0 关注
- 854 浏览
添加回答
举报