Модульное тестирование с Authlogic в Rails 3.2 - PullRequest
0 голосов
/ 01 марта 2012

Authlogic, похоже, испортил мои юнит-тесты. Когда я пытаюсь запустить какой-либо юнит-тест, я получаю:

authlogic/acts_as_authentic/base.rb:31:in `acts_as_authentic': You must establish a database connection before using acts_as_authentic (StandardError)

Неважно, какой у меня тестовый модуль. Даже если весь файл моего модульного теста содержит require 'test_helper', я все равно получаю сообщение об ошибке. Это, конечно, говорит мне, что проблема, вероятно, в моем test/test_helper.rb файле.

Вот мои test/test_helper.rb (на примере здесь ):

ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
require 'authlogic/test_case'

class ActiveSupport::TestCase
  # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
  #
  # Note: You'll currently still have to declare fixtures explicitly in integration tests
  # -- they do not yet inherit this setting
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

class ActionController::TestCase
  setup :activate_authlogic
end

Кто-нибудь еще имеет эту проблему? Я не знаю, что делать.

1 Ответ

0 голосов
/ 13 июня 2012

Для меня это было потому, что у меня были модели с пространством имен, например Qwerty::User, которые были связаны с таблицами без пространства имен, то есть users, а не qwerty_users, и когда я использовал генератор Rails для создания новой модели,Например, Qwerty::Post, который он создал, также создал Qwerty модуль, который содержал:

def self.table_name_prefix
 'qwerty_'
end

Это заставляло мою модель Qwerty::User искать qwerty_users, что было неправильно, следовательно, «Вы должны установитьОшибка подключения к базе данных.Таблица не существует.

Скорее всего, есть несколько способов получить эту ошибку, но я сомневаюсь, что любой из них будет напрямую связан с самой authlogic.

...