使用RSpec 2.10和Rails 3.2测试Authlogic 3.1

时间:2012-07-13 10:11:42

标签: ruby-on-rails rspec authlogic

我最近更新了我的Rails应用程序以使用Authlogic。身份验证在开发模式下工作正常,但测试不再有效。每次我使用bundle exec rake spec启动rspec时,应用程序都会抛出以下错误消息(修剪):

/home/user/.rvm/gems/ruby-1.9.3-p194/gems/authlogic-3.1.3/lib/authlogic/acts_as_authentic/base.rb:31:in `acts_as_authentic': You must establish a database connection before using acts_as_authentic (StandardError)
    from /home/user/Documents/projects/rails_demo/app/models/user.rb:6:in `<class:User>'
    from /home/user/Documents/projects/rails_demo/app/models/user.rb:2:in `<top (required)>'
    from /home/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'

我知道它与数据库连接没有建立有关,但我不知道我该怎么做才能修复它。它在开发中有效。

顺便说一下,这是我的数据库配置:

test:
  adapter: sqlite3
  database: ":memory:"

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

任何人都可以向我提供有关我必须采取哪些措施来解决问题的指导吗? 任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

抱歉,回答我自己的问题。我应该早点发现这个。 将测试环境的数据库配置更改为此可以解决问题:

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

但是,我不知道为什么Authlogic在内存sqlite3数据库中不起作用。