Rails 3:如何在运行测试时包含"lib"目录中的文件?

Mis*_*hko 0 testing unit-testing ruby-on-rails ruby-on-rails-3

当我跑:

ruby -I test test/unit/job_test.rb
Run Code Online (Sandbox Code Playgroud)

从应用程序根目录,我收到以下错误:

.../app/models/name_position.rb:9:in `<class:NamePosition>': 
     uninitialized constant NamePosition::PositionManager (NameError)
from .../app/models/name_position.rb:1:in `<top (required)>'
from .../app/models/ac_buyer.rb:1:in `<top (required)>'
...  
Run Code Online (Sandbox Code Playgroud)

这是相关代码:

# app/models/ac_buyer.rb
class AcBuyer < NamePosition  
end 

# app/models/name_position.rb
class NamePosition < ActiveRecord::Base
  ...
  include PositionManager
end

# lib/position_manager.rb
module PositionManager
  ...
end
Run Code Online (Sandbox Code Playgroud)

看起来在运行测试时,lib目录中的文件不会自动加载.

有什么建议 ?

Spy*_*ros 6

试着把它放在你的application.rb中

config.autoload_paths += %W(#{config.root}/lib)
Run Code Online (Sandbox Code Playgroud)