要約
カバレッジを測定する機能を提供するクラスです。
実験的な機能のため、APIは将来変更になる可能性があります。
目次
- 特異メソッド
特異メソッド
peek_result -> Hash
[permalink][rdoc][edit]-
測定を止めることなく、測定中のその時の結果をハッシュで返します。測定結果の詳細は、coverage ライブラリ を参照してください。
- [RETURN]
- 測定途中結果を表すハッシュ
- [EXCEPTION] RuntimeError:
- Coverage.start を実行する前に実行された場合に発生します。
def bool(obj) if obj true else false end end
require "coverage" Coverage.start load "bool.rb" p Coverage.peek_result #=> {"bool.rb"=>[1, 0, 0, nil, 0, nil, nil]} bool(true) p Coverage.peek_result #=> {"bool.rb"=>[1, 1, 1, nil, 0, nil, nil]} bool(false) p Coverage.peek_result #=> {"bool.rb"=>[1, 2, 1, nil, 1, nil, nil]}
[SEE_ALSO] Coverage.result
result -> Hash
[permalink][rdoc][edit]-
対象ファイル名をキー、測定結果を値したハッシュを返します。測定結果の詳細は、coverage ライブラリ を参照してください。
resultメソッドが実行された後はカバレッジの測定を行いません。
- [RETURN]
- 測定結果を表すハッシュ
- [EXCEPTION] RuntimeError:
- Coverage.start を実行する前に実行された場合に発生します。
def bool(obj) if obj true else false end end
require "coverage" Coverage.start load "bool.rb" p Coverage.result #=> {"bool.rb"=>[1, 0, 0, nil, 0, nil, nil]} bool(0) p Coverage.result # coverage measurement is not enabled (RuntimeError)
[SEE_ALSO] Coverage.peek_result
running? -> bool
[permalink][rdoc][edit]-
カバレッジ測定中かどうかを返します。カバレッジの測定中とは、Coverage.start の呼び出し後から Coverage.result の呼び出し前です。
require 'coverage' p Coverage.running? #=> false Coverage.start p Coverage.running? #=> true p Coverage.peek_result #=> {} p Coverage.running? #=> true p Coverage.result #=> {} p Coverage.running? #=> false
start(option = {}) -> nil
[permalink][rdoc][edit]-
カバレッジの測定を開始します。既に実行されていた場合には何も起こりません。ただし、カバレッジ計測中に測定対象を変更しようとした場合は、RuntimeError となります。
- [PARAM] option:
- カバレッジの計測モードを指定します。 :all か "all" を指定すると、全ての種類を計測します。個別に指定する場合は、ハッシュを渡します。詳細は、coverage ライブラリ を参照してください。
def bool(obj) if obj true else false end end
require "coverage" Coverage.start(:all) load "bool.rb" bool(0) pp Coverage.result # {"bool.rb"=> # {:lines=>[1, 1, 1, nil, 0, nil, nil], # :branches=> # {[:if, 0, 2, 2, 6, 5]=> # {[:then, 1, 3, 4, 3, 8]=>1, [:else, 2, 5, 4, 5, 9]=>0}}, # :methods=>{[Object, :bool, 1, 0, 7, 3]=>1}}} Coverage.start(methods: true) load "bool.rb" bool(0) pp Coverage.result #=> {"bool.rb"=>{:methods=>{[Object, :bool, 1, 0, 7, 3]=>1}}}