【问题标题】:DatabaseCleaner cleans test and development?DatabaseCleaner 清理测试和开发?
【发布时间】:2015-02-19 01:10:13
【问题描述】:

为什么这个配置似乎同时清理了我的testdevelopment 数据库?每次运行 rspec 时都必须重新设置 development,这很烦人。

config.before(:suite) do
  DatabaseCleaner.strategy = :transaction
  DatabaseCleaner.clean_with(:truncation)
end

database.yml

development:
  adapter: postgresql
  database: m_development
  encoding: utf8
  pool: 5
  username: booltox
  password:

test:
  adapter: postgresql
  database: m_test
  encoding: utf8
  pool: 5
  username: booltox
  password:

【问题讨论】:

  • 你能告诉我们你的database.yml吗?
  • 我敢打赌,您的database.yml 中的testdevelopment 具有相同的数据库配置。如果是这样,请为两种环境定义不同的数据库。
  • 另一个可能的原因是你有RAILS_ENV='develop'spec_helper.rb
  • @dgilperez 是的,那行也不在我的 spec_helper 中。或 test.rb。
  • 我建议你修改你的 database.yml 文件,使开发配置不再有效(例如错误的用户名、错误的密码、错误的数据库名称或不存在的条目。)。如果您确实在测试期间访问了开发数据库,​​您应该会看到一个异常,可以让您诊断正在发生的事情。

标签: ruby-on-rails ruby-on-rails-4 rspec database-cleaner


【解决方案1】:

我很愚蠢,但这可能对其他人有所帮助。不要忘记在spec_helper.rb 中定义您的环境(感谢@dgilperez):

ENV['RAILS_ENV'] ||= 'test'

【讨论】:

    猜你喜欢
    • 2011-05-28
    • 2016-10-10
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2010-11-21
    相关资源
    最近更新 更多