【问题标题】:How to configure RSpec to find specs in lib folder?如何配置 RSpec 以在 lib 文件夹中查找规范?
【发布时间】:2016-08-10 10:27:59
【问题描述】:

我正在按照本教程 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 运行其中的测试?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby rspec load-path


    【解决方案1】:

    RSpec 不在autoload_paths 中寻找测试。如果你在没有参数的情况下运行rspecrake spec,RSpec 默认在spec 目录中查找。如果您想在不同的目录中运行规范,请将该目录作为参数提供给 rspec

    rspec app/config/lib/spec
    

    但是,将您的规范保存在spec 目录中是通用约定,与您在applib 中的代码分开,所以我会将您的规范移动到spec/lib。然后,RSpec 会毫不费力地找到它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多