【问题标题】:Rails how to clear database between selenium testsRails如何在硒测试之间清除数据库
【发布时间】:2011-07-07 06:06:55
【问题描述】:

Rails 3 Rspec Selenium webrat

Selenium 测试写入开发数据库。

我需要一种在每次测试之前或之后运行 rake db:reset 的方法。

有没有办法在集成测试中运行 rake db:reset?

【问题讨论】:

    标签: ruby-on-rails-3 selenium-rc


    【解决方案1】:

    您可能会查看database_cleaner gem(请参阅https://github.com/bmabey/database_cleaner 的文档)。安装后,您可以将其添加到您的 spec_helper.rb 文件中:

    Spec::Runner.configure do |config|
    
      config.before(:suite) do
        DatabaseCleaner.strategy = :transaction
        DatabaseCleaner.clean_with(:truncation)
      end
    
      config.before(:each) do
        DatabaseCleaner.start
      end
    
      config.after(:each) do
        DatabaseCleaner.clean
      end
    
    end
    

    【讨论】:

    • 我安装了 database_cleaner。不起作用,或者我不知道为什么它不起作用。我认为环境已设置为测试,但写入的数据库是开发数据库,​​所以也许 database_cleaner 没有清理我的开发数据库?
    • Selenium 测试着眼于 Rails 应用程序而不是数据库。我认为运行 database_cleaner 会清理测试数据库。我想从测试中运行 rake 任务以清除数据库。有什么办法可以做到这一点?
    猜你喜欢
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2011-03-31
    相关资源
    最近更新 更多