我想要黄瓜在开始测试之前在“db/seeds.rb”中加载我的种子数据。不是在每个场景或功能之前,而是在运行测试之前仅进行一次。 而且在每个场景之后,种子必须保留在db中。想要在运行黄瓜之前加载种子数据
这可能吗?
我试着创建一个文件“features/support/seed_data.rb”,并要求我的db/seeds.rb在那里,但它似乎并没有加载文件。我试图在env.rb中要求我的种子 - 没有任何影响。
请问,有人可以提出我的解决方案吗?
在此先感谢!
我想要黄瓜在开始测试之前在“db/seeds.rb”中加载我的种子数据。不是在每个场景或功能之前,而是在运行测试之前仅进行一次。 而且在每个场景之后,种子必须保留在db中。想要在运行黄瓜之前加载种子数据
这可能吗?
我试着创建一个文件“features/support/seed_data.rb”,并要求我的db/seeds.rb在那里,但它似乎并没有加载文件。我试图在env.rb中要求我的种子 - 没有任何影响。
请问,有人可以提出我的解决方案吗?
在此先感谢!
如何从您的seeds.rb文件中提取代码并将其粘贴到AfterConfiguration块中的hooks.rb中?
AfterConfiguration do |config|
# Your code from seeds.rb
end
在配置黄瓜后,应该在运行期间调用once。至少这样做,你可以确定你是否有包括种子文件的问题。另一个想法是从AfterConfiguration采取seeds.rb并直接把它粘在支持目录内作为一个模块,然后调用它:
# db_seeds.rb
module DbSeeds
def seed_db
# Your Code
end
end
World(DbSeeds)
#hooks.rb
AfterConfiguration do |config|
seed_db
end
创建一个在您的支持前的钩/ hooks.rb文件看起来像这样:
Before('@load-seed-data') do
load File.join(Rails.root, 'db', 'seeds.rb')
end
在场景之前测试中,调用挂钩是这样的:
@load-seed-data @US49
Scenario: This is a scenario that needs seed data.
Given...
非常感谢你。但是这仍然不起作用,因为在每个场景黄瓜用所有种子清理数据库之后(。 – 2011-03-15 13:57:48
真正的问题是为什么当你播种一次黄瓜时,黄瓜清理数据库。 – 2011-03-15 14:17:54