2011-10-31 17 views
5

私はシナトラアプリ(ウェブサイト)を書かれている、と私は、サイトのコードのためのコードカバレッジ情報を収集したいと思います。私はRubyの新機能ですが、Googleではrcovが優れたコードカバレッジツールだと教えてくれます。残念ながら、私がオンラインで見つけることができるすべての情報は、テストケースに関するコードカバレッジ情報を取得する方法のみを示しています。私は自分自身のサイトに関するコードカバレッジ情報を必要としています。Sinatraアプリのコードカバレッジ統計情報を取得するにはどうすればよいですか?

私は、プロファイルする特定のサイトのファイルは、「SDK」と「SDK /ベンダー」ディレクトリにあるので、どこで、通常は「ルビーsite.rb」私が代わりに次のことを試してみましたし、私のサイトを実行します:

rcov -Isdk -Isdk/vendor site.rb 

それはシナトラ起動テキストを示したが、その後すぐに代わり、私シナトラアプリ通常と同じようにWeb要求を待つので終了しました。

誰かが私に有効なコードカバレッジで、私のサイトを実行しているのトリックを教えてください。私は、サイトを実行し、一連の要求でそれをヒットし、サイトを停止したい。その後、一連の要求の中から累積されたコードカバレッジ統計を調べたいと思います。

私は現在のRuby 1.8.7を使用しています。

+0

で本当に素敵なカバレッジレポートを生成し、あなたは「アプリのためのコード・カバレッジ」であると理解して何にとして、もう少し詳しく説明してくださいだろうか?伝統的には、テストケースの範囲を意味するので、 – robustus

+0

私はSinatraを使用して実装されたWebサイトを持っています。サイトを実行し、サイトのコードがそのエクササイズ中にどれだけ実行されるかを測定したいと思います。私はサイトの行使を自動化するためのテストフレームワークを使用していません。 – Bruce

+0

これは単純なはずですが、私はいくつかの重要な洞察を見逃しています。 – Bruce

答えて

1

SimpleCovをご覧になることもできます。これは、あらゆる種類のカバレッジ分析の簡単な使用方法をアドバタイズします。

+0

いいですね、私は現在Ruby 1.8.7を使っていますが、SimpleCovは1.9+しかサポートしていないようです。上記の私の問題の説明をこの情報で更新します。 – Bruce

4

SimpleCovは、このために最適です。 あなたが何かする前に(スペック/ spec_helper.rbでRSpecのとバンドラーのセットアップは超簡単です

あなたの宝石のファイルで

gem 'simplecov'

その後、

$ bundle install

を使用している場合)

require 'simplecov' 
SimpleCov.start 
その後、

$ rspec spec

Simplecovは、カバレッジ/ index.htmlを

+0

私はrspecを使用していません - 私は私の質問で指摘するように、私はテストではなく私のサイトファイルにコードカバレッジをしたい。 – Bruce

+0

十分です。私はその質問を誤解していたと思う。あなたは、特定の要求または要求のセットを受けて実行されているコードの行をテストしたいと言っていますか?私は単純に単体テストや統合テストを書くことを提案します。どのような状況下で、テストスイート以外のカバレッジレポートを作成すると便利でしょうか? – jacobsimeon

+0

それは正しいです。ブラウザ、Sinatraサーバー、および他のリモートWebサービス間のやりとりを含むかなり複雑な環境で実行されるサーバーサイドコードをテストしています。私はRubyのテストハーネスの1つを使用して、直接テストされていない設定のすべてを嘲笑していた可能性が高いですが、私はRubyの初心者ですので、複雑なシステムを単純に実装する方が簡単で安全です。ブラウザからそれを実行します。私がテストしているRubyコードのどれが実際に私のテストでどれだけ打たれているのか不思議です。 – Bruce

関連する問題