0

我计划使用 rspec 进行集成测试,使用 cucumber 进行应用程序的验收测试。我希望对两者使用相同的页面对象。我已将我的页面对象放在 lib 目录中,并且我设法让 cucumber 看到这些对象,但由于某种原因 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': no such file to load -- lib (LoadError)'

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

谢谢!

4

1 回答 1

0

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

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

require 'require_all'
require_rel ('../lib')
于 2013-10-17T01:15:56.353 回答