【问题标题】:Run exec 'rake db:drop db:create db:migrate db:seed' in cucumber before each scenario在每个场景之前在黄瓜中运行 exec 'rake db:drop db:create db:migrate db:seed'
【发布时间】:2016-03-05 19:59:12
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: ruby-on-rails ruby cucumber rake exec


    【解决方案1】:

    起初不了解 database_cleaner,但现在我明白了.... 播种“已清理”数据库时存在问题。 我现在所做的是(在 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
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-12-31
        • 1970-01-01
        • 2012-11-23
        • 2011-04-06
        • 2015-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-14
        相关资源
        最近更新 更多