3 回答

TA貢獻1853條經(jīng)驗 獲得超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,則不會執(zhí)行db:test:load(db:test:clone_structure是)

TA貢獻1875條經(jīng)驗 獲得超5個贊
您可以用來Rails.application.load_seed將種子數(shù)據(jù)加載到測試環(huán)境中。但是,何時以及何時加載此數(shù)據(jù)取決于以下幾件事:
使用Minitest
在進行所有測試之前,沒有一種方便的方法可以運行一次此文件(請參閱此Github問題)。您需要在每次測試之前加載一次數(shù)據(jù),這很可能是在測試文件的設置方法中進行的:
# test/models/my_model_test.rb
class LevelTest < ActiveSupport::TestCase
? def setup
? ? Rails.application.load_seed
? end
? # tests here...
end
使用RSpec
使用RSpec的before(:all)方法為該模型的所有測試加載種子數(shù)據(jù):
describe MyModel do
? before(:all) do
? Rails.application.load_seed
end
describe "my model..." do
? # your tests here
end
希望這可以幫助。
- 3 回答
- 0 關注
- 899 瀏覽
添加回答
舉報