4

Selenium テストのスイートがあります。これらのテストのサーバー側のカバレッジをカバーするために、SimpleCov を使用したいと思います。まず、これは一般的なアプローチですか?SimpleCov/Selenium では何も見つかりませんでした。SimpleCov は通常、統合の代わりに単体/機能テストに使用されるのでしょうか?

現在の Selenium のセットアップでは、Rails サーバーを起動する必要があります。一連の Selenium テストを実行する必要はありません。RailsサーバーでSimpleCovを実行する必要があり、スイートが完了したら終了します。

どんな助けでも大歓迎です!

4

1 に答える 1

5

simplecov の作者はこちら。SimpleCov を起動するたびに、現在実行中のプロセスにカバレッジ分析が適用されます。したがって、Rails サーバー プロセス内で SimpleCov を起動する必要があります。次のように、SimpleCov セットアップを Rails アプリの config/boot.rb (一番上) の条件として追加することをお勧めします。

# config/boot.rb
if ENV["SELENIUM"]
  require 'simplecov'
  SimpleCov.start 'rails'
end

Rails テスト サーバーを起動する前に、その環境変数を設定します。テスト サーバーがシャットダウンされると、カバレッジ レポートを受け取るはずです。通常の (ユニット/機能) カバレッジ レポートに干渉しないように別のディレクトリに移動する場合は、構成オプションを確認してください。

ただし、boot.rb が適切な場所かどうかはわかりません。実際には、SimpleCov は、アプリ内の他のものが必要になる前にロードする必要があります。そうしないと、それらのファイルのカバレッジを追跡できません。その場所を見つけるには、レールのブートプロセスを実験するか調べる必要があるかもしれませんが、Bundler セットアップは boot.rb の一部であるため (私の記憶が正しければ...)、上記の構成を Bundler.setup の上に置く必要があります。大丈夫です。

基本的に、同様のセットアップを使用して、サーバープロセスで simplecov を起動し、クリックしてサーバーを終了することにより、ローカルの手動ブラウザーベースのテストのコードカバレッジを取得することもできます。たとえば、アプリケーションの特定のアクションの部分を知りたい場合です。本当に感動します。

于 2012-05-11T08:50:29.360 に答える