我正在使用Factory Girl来填充我的种子数据,并将其添加到seed.rb中。
然后,我使用Cucumber运行我的测试。
我有一张价格表,其中包含我想在所有环境中使用的种子数据。
我希望rake db:seed将其添加到我的dev和test数据库中,并使cucumber能够使用该测试种子。然后,我还会在生产环境中添加该种子数据。
如何确保我的种子数据被添加到开发和测试数据库中?
rake db:seed #only adds it only to my dev database
我正在使用Factory Girl来填充我的种子数据,并将其添加到seed.rb中。
然后,我使用Cucumber运行我的测试。
我有一张价格表,其中包含我想在所有环境中使用的种子数据。
我希望rake db:seed将其添加到我的dev和test数据库中,并使cucumber能够使用该测试种子。然后,我还会在生产环境中添加该种子数据。
如何确保我的种子数据被添加到开发和测试数据库中?
rake db:seed #only adds it only to my dev database
你可以尝试类似于这样的方法:
rake db:seed RAILS_ENV=test --trace
rake db:seed RAILS_ENV=production --trace
请查看这篇回答,它与您的问题类似。
我认为最好使用工厂来填充测试数据库。如果您需要在测试期间添加种子数据,请将其添加为spec_helper/test_helper中的before :all
块。
在处理测试数据库时,您可能需要访问此主题,特别是因为您不希望将数据保留在测试数据库中。随着测试的发展,您很可能会发现自己使用种子数据、工厂以及模拟,并且使用持久数据时会遇到冲突。
个人而言,我喜欢为我的测试数据库使用自定义种子文件,并在rails_helper中加载它:
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.clean
load "#{Rails.root}/db/custom_test_seed.rb"