什么是Ruby Coverage.c是什么?它是什么?

时间:2014-08-13 15:09:36

标签: ruby

我在Stdlib中遇到过这个模块:http://ruby-doc.org/stdlib-2.0.0/libdoc/coverage/rdoc/Coverage.html

通过该页面阅读,我不太清楚这意味着什么:

  

解释器执行的行数。零值表示   此行的覆盖率被禁用(其他行和结束)

什么是“线路执行次数”以及线路的“覆盖范围”是什么?

我找不到任何关于它的文件或提及它的用途。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

正如您所料,“行执行次数”是解释程序在执行程序期间执行行的次数。

让我们看一下文档中的示例,并将结果作为注释添加到原始代码中。

[foo.rb]
s = 0           # executed once
10.times do |x| # once
  s += x        # ten times
end             # not analyzed
                # not analyzed
if s == 45      # once
  p :ok         # once
else            # not analyzed
  p :ng         # not executed
end             # not analyzed
[EOF]

require "coverage.so"
Coverage.start
require "foo.rb"
p Coverage.result  #=> {"foo.rb"=>[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]}

“覆盖率”是对每行执行次数的分析。

我认为这个模块对于查看你的测试是否具有不错的“代码覆盖率”很有用,即检查测试是否实际通过了所有代码,或者是否有部分从未执行过。

在该上下文中使用相同的示例,此覆盖率分析会告诉您else p :ng部分未被激活且可能未经过测试。

答案 1 :(得分:1)

  

什么是"行数执行"什么是"覆盖"一个   线?

"行数执行" =>运行代码时执行该行的次数。

"覆盖率" =>程序中每一行执行的次数。

阅读本文:http://en.wikipedia.org/wiki/Code_coverage