我在本教程http://apionrails.icalialabs.com/book/frontmatter
之后使用Rails 5.0创建了一个小API我正在尝试运行位于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运行其中的测试?
提前致谢。
答案 0 :(得分:1)
RSpec没有在autoload_paths
中寻找测试。如果您在没有参数的情况下运行rspec
或rake spec
,则RSpec默认情况下会查找spec
目录。如果要在其他目录中运行规范,请将该目录作为参数提供给rspec
:
rspec app/config/lib/spec
但是,将您的规范保存在spec
目录中,与app
和lib
中的代码分开是一般惯例,所以我要移动您的规格为spec/lib
。然后RSpec将毫不费力地找到它们。