Как настроить RSpec для поиска спецификаций в папке lib?
Я создаю небольшой API с Rails 5.0, следуя этому руководству http://apionrails.icalialabs.com/book/frontmatter
Я пытаюсь запустить тест, расположенный в app/config/lib
но RSpec не найдет тест.
Я пробовал добавлять config.autoload_paths << Rails.root.join('lib')
или жеconfig.autoload_paths += %W(#{config.root}/lib)
в app/config/application.rb
,
Это мой код:
$ /app/config/application.rb
#required files go here, deleted for clarity.
Bundler.require(*Rails.groups)
module MarketPlaceApi
class Application < Rails::Application
# don't generate RSpec tests for views and helpers
config.generators do |g|
g.test_framework :rspec, fixture: true
g.fixture_replacement :factory_girl, dir: 'spec/factories'
g.view_specs false
g.helper_specs false
g.stylesheets = false
g.javascripts = false
g.helper = false
end
config.autoload_paths += %W(#{config.root}/lib)
end
end
Тестовое задание
$ app/config/lib/spec/test_spec.rb
require 'spec_helper'
describe ApiConstraints do
#test goes here
end
Как я могу добавить lib
папка так RSpec запускает тесты, расположенные в ней
Заранее спасибо.
1 ответ
RSpec не ищет тесты в autoload_paths
, Если вы бежите rspec
или же rake spec
без аргументов RSpec смотрит в spec
каталог по умолчанию. Если вы хотите запустить спецификации в другом каталоге, дайте этому каталогу rspec
в качестве аргумента:
rspec app/config/lib/spec
Тем не менее, это универсальное соглашение, чтобы сохранить ваши спецификации в spec
каталог, отдельный от вашего кода в app
а также lib
так что я бы переместил ваши спецификации в spec/lib
, RSpec найдет их без лишних усилий.