运行 exec 'rake db:drop db:create db:migrate db:seed' in cucumber before each scenario

Run exec 'rake db:drop db:create db:migrate db:seed' in cucumber before each scenario

我搜索并尝试了很多次,但没有找到我的答案。 我的项目有一些用小黄瓜编写的功能文件(在 rails 项目中)。所有步骤都已定义,并且功能本身 运行 如果我每一个都启动它们就非常好。 我可以 运行 所有场景以及我需要执行的黄瓜 在每个场景之前耙 db:drop db:create db:migrate db:seed。 我在 env.rb 的 begin 函数中尝试了 exec 'rake db:drop db:create db:migrate db:seed' 并且在功能的后台步骤中尝试了相同的操作。该命令已执行,但之后黄瓜停止并且不执行场景。我该如何使用它?

感谢您的帮助!

你看过 Database Cleaner gem 了吗? 它可能会帮助您解决这个问题。

一开始不明白 database_cleaner,但现在我明白了.... 播种 "cleaned" 数据库时出现问题。 我现在做的是(在env.rb)

begin
    require 'database_cleaner'
    require 'database_cleaner/cucumber'
    DatabaseCleaner.strategy = :truncation
  rescue NameError
    raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end
Before do |scenario|
    load Rails.root.join('db/seeds.rb')
end
Around do |scenario, block|
    DatabaseCleaner.cleaning(&block)
end