rspec无法使用require_all查看我的lib文件夹中的对象

时间:2013-10-15 16:16:11

标签: rspec capybara

我计划将rspec用于集成测试,黄瓜用于我的应用程序的验收测试。我希望两者都使用相同的页面对象。我已经将我的页面对象放在lib目录中,我设法让黄瓜看到对象,但由于某些原因,rspec无法看到lib文件夹中的对象。

我尝试过使用require_all方法。所以我的规范助手有以下几点:

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'require_all'
require_all('lib') 

我的文件夹结构如下:

>selenium
  >features (this contains my cucumber scenarios, support dir with env file etc)
  >lib (this is the folder with the page objects contained in sub directories)
  >spec
    spec_helper.rb
    >features (rspec scenarios)
    >support

当我尝试使用命令rspec testfile.rb运行测试时,我收到错误消息:'rescue in require_all':没有要加载的文件 - lib(LoadError)'

任何人都知道我在这里做错了什么?任何帮助将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

require_all正在查找相对于工作目录的文件夹。假设您正在运行spec / features文件夹中的rspec命令,那么require_all(' lib')正在寻找功能中的lib文件夹(即spec / features / lib)。我不相信require_all会检查$ LOAD_PATH。

我建议使用require_rel,因为它相对于当前文件。在spec_helper.rb中,请执行以下操作。

require 'require_all'
require_rel ('../lib')