加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 需要使用Ruby的RSpec中的lib,1.9.2带来“没有

发布时间:2020-12-16 20:01:43 所属栏目:百科 来源:网络整理
导读:我正在尝试将我的一个Rails项目升级到 Ruby 1.9.2.一切都很好,但是一个RSpec测试破了.在这个测试中,我需要一个Ruby lib: # file spec/models/my_lib_spec.rbrequire 'spec_helper'require 'lib/services/my_lib'describe "MyLib" do it "should do somethin
我正在尝试将我的一个Rails项目升级到 Ruby 1.9.2.一切都很好,但是一个RSpec测试破了.在这个测试中,我需要一个Ruby lib:
# file spec/models/my_lib_spec.rb
require 'spec_helper'
require 'lib/services/my_lib'

describe "MyLib" do

  it "should do something" do
...

lib看起来像这样:

# file lib/services/my_lib.rb
class MyLib

  def self.do_something
  ...

在Ruby 1.8.7(REE)中,测试运行良好:

$ruby -v   
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin11.1.0],MBARI 0x6770,Ruby
Enterprise Edition 2011.03
$rspec ./spec/models/my_lib_spec.rb
..

Finished in 1.4 seconds
2 examples,0 failures

在Ruby 1.9.2中,我收到一个错误,没有这样的文件加载:

$ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]
$rspec ./spec/models/my_lib_spec.rb
/Users/tmangner/.rvm/gems/ruby-1.9.2-p290@madgoal/gems/activesupport-
3.2.2/lib/active_support/dependencies.rb:251:in `require': no such file
to load -- lib/services/my_lib (LoadError)

我没有线索,什么让Ruby 1.9找不到lib.

解决方法

ruby 1.9中的加载路径不像1.8中那样正常工作.

您需要将项目的根目录添加到加载路径.

你可以这样运行rspec这样做:

rspec -I . ./spec/models/tipp_remember_spec.rb

…或者通过手动将东西添加到spec_helper.rb中的加载路径(将其放在spec_helper.rb的顶部)

$:<< File.join(File.dirname(__FILE__),'..')

我认为默认情况下,rspec会将您的本地lib目录添加到加载路径,因此您可以重写以下代码:

require 'services/my_lib'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读