Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1399996
  • 博文数量: 244
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 2704
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-26 08:17
个人简介

微信公众号:杰夫弹弹看

文章分类

全部博文(244)

文章存档

2018年(4)

2017年(32)

2016年(25)

2015年(28)

2014年(27)

2013年(34)

2012年(25)

2011年(30)

2010年(39)

分类: Python/Ruby

2014-12-23 18:14:15

今天使用bundle exec strainer运行cookbook测试,发现报错,
问题1: 
 uninitialized constant RSpec::Matchers::BuiltIn::RaiseError::MatchAliases (NameError)

查出原来是旧版本的兼容性问题,


修改Gemfile中的版本依赖如下:
gem 'chefspec', '~> 4.0'

问题2:
旧的Rspec测试都是基于老的Rspec2,在Rspec 3对应的已经不再支持,所以运行会出现下面的问题,
You must pass an argument rather than a block to use the provided matcher (equal true), or the matcher must implement `supports_block_expectations

具体问题参考这个帖子:



具体新的Rspec格式要求参见文档如下:




问题3: 
RSpec 3.0 deprecates the :should way of writing specs for expecting things to happen.
也是新的版本的问题,导致旧的语法格式有warnings,
Fix 方法1)
这个帖子介绍的很详细,包含fix方法,


Inside spec/spec_helpber.rb, set rspec-expectations’ and/or rspec-mocks’ syntax as following:


RSpec.configure do |config|
  # ...
  config.mock_with :rspec do |c|
    c.syntax = [:should, :expect]
  end
  config.expect_with :rspec do |c|
    c.syntax = [:should, :expect]
  end
end

官方说明:


Fix 方法2)
还有一种fix方式是修改,转换旧的格式语法,有一个资料介绍一个自动转换工具:

暂时没有使用上面的方法,有空的话,可以尝试一下。


阅读(1112) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~