Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1400067
  • 博文数量: 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-04-01 17:52:25

在写cookbook的时候,发现strainer test 一直有问题
undefined method `<<' for {}:Hash

比如network的cookbook在havana中spec_helper.rb是

点击(此处)折叠或打开

  1. # README(galstrom21): This will remove any coverage warnings from dependent cookbooks
  2. ChefSpec::Coverage.filters << '*/openstack-network'
出错的地方,是filters这个地方

调查发现,原来社区的cookbook在icehouse将chefspec的version升级到3.4了
而havana是使用的3.1.4

查看chefspec的ruby class 说明:
chefspec 3.1.4 资料[1]

点击(此处)折叠或打开

  1. # File 'lib/chefspec/coverage.rb', line 16
  2. def initialize
  3.   @collection = {}
  4.   @filters = []
  5. end
这个是array

chefspec 3.4 资料[2]

点击(此处)折叠或打开

  1. # File 'lib/chefspec/coverage.rb', line 28
  2. def initialize
  3.   @collection = {}
  4.   @filters = {}
  5. end
已经变为hash了,所以显然如果仅仅更新GemFile,还是基于havana的spec_helper直接运行,那么就会报上面的错误,所以社区已经修改使用了如下的调用

点击(此处)折叠或打开

  1. ChefSpec::Coverage.start! { add_filter 'openstack-network' }


更多参考可以看社区的blueprint

[1] 
[2] 
[3] 
[4] 

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