所以,我正在尝试创建一个带有lib文件夹的gem和一个用于rspec测试的spec文件夹,如下所示:
- my_gem
|-- lib
| |-- my_gem
| | |-- foo.rb
| |
| |-- my_gem.rb
|
|-- spec
| |-- lib
| |-- foo_spec.rb
|
|-- my_gem.gemfile
|-- Rakefile
my_gem.rb包含require 'my_gem/foo'
,效果很好。
但我试图require 'lib/my_gem'
的spec文件不起作用。当我在没有使用-I .
显式设置路径的情况下运行rspec(或rake spec)时,它无法加载文件:
foo_spec.rb:1 in `require': cannot load such file -- lib/my_gem.rb (LoadError)
我觉得我不应该在每个规范中都要求spec_helper.rb来解决这个问题,我也不应该每次都为rspec指定加载路径。我必须要有一个简单的约定,因为我不熟悉gem开发(我通常只做rails的东西)。
编辑:我应该指出,我很清楚我可以require_relative '../../lib/my_gem.rb'
。关键是我希望能够像我习惯在rails中一样自动将根文件夹放到我的路径上。如果这是不可能的,请告诉我。
答案 0 :(得分:3)
规范不知道lib/my_gem
的路径。尝试
require_relative '../../lib/my_gem'