💎
Ruby 3.2 - Coverage
Ruby 3.2 アドベントカレンダーの7日目の記事です。
Ruby 3.2.0 RC1 がリリースされたので、ネタ元を Ruby 3.2 RC1 の NEWS.md に変更。
6日目までに書いた内容は特に変更なさそう。
Coverage
eval でもカバレッジデータを取得可能
Feature #19008: Introduce coverage support for eval
. - Ruby master - Ruby Issue Tracking System
eval: true
を指定すると eval したときでもカバレッジデータを取得できるようになった。
require 'coverage'
Coverage.start(lines: true, eval: true)
s = <<EOS
10.times do |i| # ここは1回
if i.odd? # ここは10回
1 # ここは5回
else
2 # ここは5回
end
end
EOS
eval s, nil, 'hoge'
pp Coverage.result
#=> {"hoge"=>{:lines=>[1, 10, 5, nil, 5, nil, nil]}}
便利。
Coverage.supported? 追加
Coverage がサポートしてる機能を検査できる。
require 'coverage'
pp Coverage.supported?(:eval) #=> true
pp Coverage.supported?(:hoge) #=> false
Discussion