Я использую RSpec с движком Rails без проблем.
Я создал свой плагин, используя следующие ключи: -T --full --dummy-path = spec / dummy.
-T
исключает тест / модуль --full
означает, что плагин является движком --dummy-path
просто так, что мы не получаем тестовый каталог (по умолчаниюis test / dummy).
Оттуда я использовал spec_helper из статьи "start your engine":
# Configure Rails Envinronment
ENV["RAILS_ENV"] = "test"
require File.expand_path("../dummy/config/environment.rb", __FILE__)
require 'rspec/rails'
ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[File.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each {|f| require f }
RSpec.configure do |config|
config.use_transactional_fixtures = true
end
Для генераторов.Я добавляю блок config.generators в мой файл engine.rb следующим образом:
module MyEngine
class Engine < Rails::Engine
config.generators do |g|
g.test_framework :rspec, :view_specs => false
end
end
end
Благодаря этому я могу получать тесты rspec при запуске генератора, такого как генератор моделей.
Что касается БД, правильно ли настроен ваш файл database.yml?Вы загружали тестовую среду, например, rake db:test:clone
или rake db:migrate RAILS_ENV=test
?Я предполагаю, что RSpec не может видеть ваши таблицы, потому что не настроена тестовая база данных.