Ruby 2.4参考手册
覆盖 | Coverage
Coverage
Coverage提供了Ruby的覆盖率测量功能。此功能是实验性的,因此这些API可能会在未来更改。
- 要求“coverage”
- do ::start
- 需要或加载Ruby源文件
- :: result将返回一个包含文件名作为键和覆盖数组作为值的散列。覆盖数组为每行提供解释器执行的行数。一个
nil
值意味着这条线的覆盖范围被禁用(例如else
和end
)。
[foo.rb]
s = 0
10.times do |x|
s += x
end
if s == 45
p :ok
else
p :ng
end
[EOF]
require "coverage"
Coverage.start
require "foo.rb"
p Coverage.result #=> {"foo.rb"=>[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]}
公共类方法
peek_result → hash Show source
返回包含文件名作为键和覆盖数组作为值的散列。
static VALUE
rb_coverage_peek_result(VALUE klass)
{
VALUE coverages = rb_get_coverages();
VALUE ncoverages = rb_hash_new();
if (!RTEST(coverages)) {
rb_raise(rb_eRuntimeError, "coverage measurement is not enabled");
}
st_foreach(RHASH_TBL(coverages), coverage_peek_result_i, ncoverages);
rb_hash_freeze(ncoverages);
return ncoverages;
}
result → hash Show source
返回包含文件名作为键和覆盖数组作为值的散列,并禁用覆盖率测量。
static VALUE
rb_coverage_result(VALUE klass)
{
VALUE ncoverages = rb_coverage_peek_result(klass);
rb_reset_coverages();
return ncoverages;
}
start → nil Show source
启用覆盖率测量。
static VALUE
rb_coverage_start(VALUE klass)
{
VALUE coverages = rb_get_coverages();
if (!RTEST(coverages)) {
coverages = rb_hash_new();
rb_obj_hide(coverages);
rb_set_coverages(coverages);
}
return Qnil;
}
覆盖 | Coverage相关
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。
主页 | https://www.ruby-lang.org/ |
源码 | https://github.com/ruby/ruby |
版本 | 2.4 |
发布版本 | 2.4.1 |