我在Stdlib中遇到过这个模块:http://ruby-doc.org/stdlib-2.0.0/libdoc/coverage/rdoc/Coverage.html
通过该页面阅读,我不太清楚这意味着什么:
解释器执行的行数。零值表示 此行的覆盖率被禁用(其他行和结束)
什么是“线路执行次数”以及线路的“覆盖范围”是什么?
我找不到任何关于它的文件或提及它的用途。有什么想法吗?
答案 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)
什么是"行数执行"什么是"覆盖"一个 线?
"行数执行" =>运行代码时执行该行的次数。
"覆盖率" =>程序中每一行执行的次数。