2012-10-23 10 views
8

私は、従来のRailsアプリケーション用のテストスイートを構築しています。 simplecov宝石は、テストカバレッジを必要とする(または完全に使用されていない可能性があり、取り外すことができる)アプリの暗いコーナーを見つけるのに最適です。私は単にtest/test_helper.rbの先頭に次を含めることによって、simplecovを起動しています:Rails ERBテンプレートのコードカバレッジをテストするには?

require 'simplecov' 
SimpleCov.start('rails') 

問題は、これがテンプレートに埋め込まれているすべてのコードをチェックしないということです。そこにはあらゆる種類の迷惑メールがありますが、そのうち多くを削除することができると確信していますが、コードカバレッジツールが私に未使用ビットを指すことができれば本当にうれしいでしょう。

のRuby 1.9のCoverageライブラリは、Rubyのソースファイルに保存され、テンプレートが何とかRubyコードにプリコンパイルされた場合、それが唯一の仕事をすることができると信じて私をリードした後、load編またはrequire D、といくつかの実験コンパイルされたテンプレートを直接evalでロードするのではなく、または、コンパイルプロセス中に各テンプレートの各行にロギングステートメントを追加するためにERBをハックする可能性があります。

ERBテンプレートのコードカバレッジを測定する方法は他にもありますか?あなたはこれを行うことができる既製のツールを知っていますか? (それとも私が構築し、それを解放するための一つであることがあるのだろうか?)

答えて

8

参照の各部分のカバレッジ持つテーブルを生成する

統計: をHow do I get coverage for view specs with rspec, rails, and simplecov?

答えている、あなたがすることはできません:

https://github.com/colszowka/simplecov/issues/38

それはです私が誰かが取り組むことを願っている重大な欠陥。 AFIK Ruby 1.9用にsimplecovより優れたものはありません

+1

OK。ありがとう。私はこの答えを受け入れるだろう...しかし、私は自分自身でこの問題の解決策を作らなければならないかもしれないと思っています。もしそうすれば、それは受け入れられる答えになるでしょう。 –

-2

トライレーキは、それがアプリ

+0

これを試しました。それは動作していないようです。 –

+0

あなたのRailsバージョンは何ですか?それはRails 3.2.3で完璧に動作しています... rake -Tを実行して、そこにリストされているタスクの説明を読んでください... –

+1

私は知りたくないです*私のテンプレートにはたくさんのコード行があります。これらの行のどれがテストスイート*によって実行されているかを知りたいです。質問をよくお読みください。 –

関連する問題