У меня проблемы с запуском стандартных тестов в Rails3 beta4 с Cancan (http://github.com/ryanb/cancan).. Это обычные ванильные тесты, которые выглядят как
тест "правда" сделать
утверждать истину
конец
Каждый отдельный тест (как единичный, так и функциональный) выдает следующую ошибку:
ActiveRecord :: StatementInvalid: SQLite3 :: SQLException: нет такой таблицы: способности: УДАЛИТЬ ИЗ "способностей" ГДЕ 1 = 1
Это происходит, даже если использование и способность определены в test_helpers.rb
Я предполагаю, что это связано с моделью способностей, которую Cancan использует для авторизации, поскольку она не сохраняется (просто простой класс Ruby) и, следовательно, не имеет таблицы в БД. Возможно, что-то пытается разрушить способности после тестов и ошибочно пытается удалить способности из базы данных? Как я могу проверить это (и, что более важно, исправить)?
Еще раз, в тестах нет никакой пользовательской логики: они сгенерированы Rails3 beta4.
(К вашему сведению, класс Ability не наследуется от ActiveRecord :: Base и включает CanCan :: Ability. Кроме того, приложение - авторизация и все - работает нормально.)
Окружающая среда:
- ruby 1.8.7-p249
- рельсы 3.0.0.beta4
- cancan 1.2.0
- разработать 1.1.rc2
Кто-нибудь еще сталкивался с этой проблемой?
Спасибо за вашу помощь!
ОБНОВЛЕНИЕ: попытался перейти на PostgreSQL. Очевидно, ошибка не зависит от БД: при запуске "rake test" * получена следующая ошибка
ActiveRecord :: StatementInvalid: PGError: ОШИБКА: отношение "способности" не существует
ЛИНИЯ 1: УДАЛИТЬ ИЗ "Способностей"
^
: УДАЛИТЬ ИЗ "Способностей"