如何配置 RSpec 以在 lib 文件夹中查找规格?
How to configure RSpec to find specs in lib folder?
我正在按照本教程 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 运行 测试位于其中?
提前致谢。
RSpec 不在 autoload_paths
中查找测试。如果你 运行 rspec
或 rake spec
没有参数,默认情况下 RSpec 在 spec
目录中查找。如果你想 运行 规格在不同的目录中,将该目录作为参数提供给 rspec
:
rspec app/config/lib/spec
但是,将您的规范保存在 spec
目录中是普遍惯例,与 app
和 lib
中的代码分开,因此我将您的规范移至 spec/lib
。 RSpec 将毫不费力地找到它们。
我正在按照本教程 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 运行 测试位于其中?
提前致谢。
RSpec 不在 autoload_paths
中查找测试。如果你 运行 rspec
或 rake spec
没有参数,默认情况下 RSpec 在 spec
目录中查找。如果你想 运行 规格在不同的目录中,将该目录作为参数提供给 rspec
:
rspec app/config/lib/spec
但是,将您的规范保存在 spec
目录中是普遍惯例,与 app
和 lib
中的代码分开,因此我将您的规范移至 spec/lib
。 RSpec 将毫不费力地找到它们。