2

Ruby on Rails アプリケーションのコード カバレッジを計算するために、simplecov gem の使用を開始しました。

SimpleCov.start 'rails'

Cucumber を使用していくつかのテスト ケースを開発しただけですが、simplecov によって提供されるレートは 40% と高いです。

このレートをより正確にする方法は?

4

1 に答える 1

2

測定されたカバレッジの数値はおそらく正確です。Ruby のモジュール、クラス、およびメソッドの定義はコードであるため、simplecov の実行中にモジュールとクラスをロードするだけで、かなりの割合のコードがカバーされます。1 つの Cucumber シナリオが多くのクラスを参照する可能性が高いため、この影響が生じます。rake タスクや他の場所でのコードへの参照も、この「バックグラウンド」カバレッジを増加させます。これがどの程度当てはまるかは、カバレッジ レポートを見て、定義の本体がカバーされていないのにclassandmoduleおよび行がカバーされていることを観察することで確認できます。def

戦わないでください。それを操作するだけです。コードがロードされた後に simplecov を実行しようとしないでください。simplecov は、コード カバレッジの数値の分母にモジュール、クラス、およびメソッドの定義をまだ含めているため、さらに煩わしくなります。

実際、すべてのコードを熱心にロードして、simplecov が他の方法ではテストがロードされないファイルのカバレッジの欠如を示すようにすることもできます。(simplecov は、ロードされていないファイルを計測しません。) これにより、実際に正確な測定値が得られます。私が忘れていた方法でカバーオールに干渉したため、最近のプロジェクトではそれをやめなければなりませんでしたが、それはあなたにとって問題ではないかもしれません.

于 2016-05-11T00:23:20.413 に答える