我计划将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)'
任何人都知道我在这里做错了什么?任何帮助将不胜感激!
谢谢!
答案 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')