私の現在の Ruby on Rails プロジェクトは rcov (具体的には、関連性 rcov ) を介してテストを行っており、かなり高い基準を持っています (コード カバレッジが 95% 未満の場合、ビルドは失敗します)。
これをテストするには、次のコマンドを使用します。
rcov_cmd = "rcov --rails --text-summary \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
今日、rcov レポートに緑色 (実行済み) を登録するコードを見つけました。Homever、このコードが実行されていないことを証明できます (関数の先頭で例外を発生させ、単体テストに合格します)
私はいくつかの調査を行い、rcov の --xrefs フラグを見つけました。これにより、rcov レポートの各行のすべての呼び出し元が追加されると思いました。
rcov コマンドを次のように変更しました。
rcov_cmd = "rcov --rails --text-summary --xrefs \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
(追加された--xrefs
フラグに注意してください)。
コールサイト情報を追加する代わりに、テスト カバレッジを 96% から 48% にします。
--xrefs は、rcov が行う分析の種類を変更しますか? (コールサイト情報を収集するだけだと思っていました)。これは最初のコマンドとどう違う/より良いですか? (失敗した単体テストがある場合、単体テストのカバレッジが低下するのを見てきました。実行中にエラーが発生した場合、カバレッジのパーセンテージが低下する可能性があることは知っていますが、私には良さそうです)