ruby – RSpec只能查看我的Lib目录的根目录中的类
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 解决方法
我不知道你有没有你想要的答案,但似乎你并没有正确地要求你的文件.
你的’lib / class_found.rb’文件应该要求你所有的库文件,所以它应该类似于: require 'workers/class_not_found' 并且您的spec_helper.rb将需要lib文件夹中的主文件,因此它应该类似于: require 'class_found' rspec在运行时自动加载’spec / spec_helper.rb’,它还会自动将’lib’文件夹添加到其LOAD_PATH中,这样就可以正确地看到并要求’lib / class_found.rb’. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |