RSpec(2.12.2)让我很难过.如果我想在我的一个规范中引用一个类,并且该类不在我的/ lib目录的根目录中,则会抛出一个错误:
no such file to load -- test (LoadError)
似乎我的规范可以嵌套在文件夹结构中,但是当我尝试并且需要一个嵌套文件夹中的类时(例如lib / workers / conversion_worker.rb),我得到了这个错误.
我在所有规范中都使用了’spec_helper’,但即使对类路径进行硬编码也会导致同样的错误.
有了这个结构:
-lib/ - class_found.rb - workers/ - class_not_found.rb
规范看起来像这样:
# spec/workers/class_not_found_spec.rb require "spec_helper" require "class_not_found" describe ClassNotFound do it "Does something" end
以下命令成功运行规范(-I标志添加$LOAD_PATH的路径):
$rspec spec/workers/class_not_found_spec.rb -I /Path/to/project/*
因此,似乎RSpec没有在其路径下添加lib以下的任何内容.
我可以使用require_relative成功地要求class_not_found.rb:
require_relative "../../lib/workers/class_not_found.rb" #Succeeds
但不使用require:
require "lib/workers/class_not_found.rb" # Fails
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。