Как настроить 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 найдет их без лишних усилий.

Другие вопросы по тегам