2012-03-17 40 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__) 
相关问题