2012-03-17 57 views
1

這裏是我的項目結構:需要在頂層目錄文件

/app 
--/lib 
----/porter.rb 
--/spec 
----/porter_spec.rb 

在文件porter_spec.rb我有包括指令:

require '../lib/porter' 

現在我想要運行的測試:

cd app 
rspec 

並且得到錯誤:

C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- ../lib/porter (LoadError) 
     from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require' 
     from C:/Dropbox/development/myprojects/lj-parser/spec/porter_spec.rb:3:in `<top (required)>' 

如何在lib文件夾中需要文件?

回答

3

顯然,您當前的目錄不是您認爲的目標。

您應該使用require_relative(紅寶石1.9+):

require_relative '../lib/porter' 
3

在ruby1.9,你可以使用:

require_relative '../lib/porter' 

在ruby1.8的或更高版本,可以使用:

require File.expand_path("../lib/porter", __FILE__)