Ruby手工测试正确,rcov测试失败的解决

下述情况出现的几率非常小,但是碰到了又挺难理解

 

背景:

新安装的LEOPARD 上安装了新的ruby 1.8.7, 路径在/opt

gem 安装 rcov

现象:

 

ruby test.rb

正确

 

rcov
失败

 

分析:

分析了半天,突然想起来没有安装过rubygem

查看 gem 路径在/usr,也就是说gem 安装的包自动配制了/usr下系统安装的ruby,版本为1.8.6

解决:

下载并安装了新的rubygem,配制到/opt路径下,一切解决

验证:

分析认为是源代码中使用了1.8.7的新特性,验证如下

1.8.6

>> require 'set'
=> true
>> a = [[1].to_set,[2].to_set].to_set
=> #<Set: {#<Set: {2}>, #<Set: {1}>}>
>> a.include?([1].to_set)
=> false
1.8.7


irb(main):001:0> require 'set'
=> true
irb(main):
002:0> a = [[1].to_set,[2].to_set].to_set
=> #<Set: {#<Set: {1}>, #<Set: {2}>}>
irb(main):
003:0> a.include?([1].to_set)
=> true

差别就出来了,集合的集合对于包含元素的判别在两个版本中是不一致的

 


rcov

转载于:https://www.cnblogs.com/Tachikoma/archive/2008/10/16/1313010.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值