我希望黄瓜在开始测试之前在“db / seeds.rb”中加载我的种子数据。不是在每个场景或功能之前,而是在运行测试之前只执行一次。 并且在每个场景之后,种子必须保留在db。
这可能吗?
我已经尝试创建一个文件“features / support / seed_data.rb”,并在那里需要我的db / seeds.rb,但似乎根本没有加载文件。我试图在env.rb中要求我的种子 - 没有影响。
拜托,有人能建议我解决方案吗?
提前致谢!
答案 0 :(得分:1)
在support / 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...
答案 1 :(得分:0)
如何从seeds.rb文件中提取代码并将其粘贴在AfterConfiguration块中的hooks.rb中?
AfterConfiguration do |config|
# Your code from seeds.rb
end
在运行期间,应该在配置黄瓜之后调用once。至少这样做,你可以确定你是否只是包含种子文件的问题。另一个想法是将seeds.rb直接粘贴在支持目录中作为模块,然后从AfterConfiguration中调用它:
# db_seeds.rb
module DbSeeds
def seed_db
# Your Code
end
end
World(DbSeeds)
#hooks.rb
AfterConfiguration do |config|
seed_db
end