2

コードカバレッジを取得したいプロジェクトがあります。これはRailsにない標準的なJRubyプロジェクトであり、RCovを機能させる方法を考えていました。私は長い間結果を得ようとしてきましたが、何が起こっているのかわかりません。カバレッジフォルダを表示しますが、すべてのファイルがrequireでloaderrorsを取得するか、ロードされたファイルがテスト済みとはまったく言えません(テスト仕様を作成してから、ある場合はbalooneyであることがわかります)それのための)。RCovを機能させる方法や、添付のエラーが発生する理由を誰かに説明してもらえますか?含まれているライブラリに対して-Iを実行する方法/理由、またはそのポイントがわかりません。これまで行ってきたことから、メインのappcodeディレクトリからrcov spec / .rbを実行しているだけで、カバレッジフォルダが生成されます。.rb /home/ben/.rvm/gems/jruby-1.6.8/gems/rcov-0.9.11-java/lib/rcov/differential_analyzer.rb:31警告:トレース(例:set_trace_func)は、 --デバッグフラグNoMethodError:./spec/ncrf_spec.rb:3にあるmain:Object(ルート)の未定義のメソッド `describe'

4

1 に答える 1

2

RCovは、Ruby(MRI)1.8.xのMatzの参照実装に厳密に制限されており、MRI1.9.xでも機能しません。

SimpleCovは、新しいRuby Coverage APIを使用するため、新しい方法です。このAPIは、しばらくの間JRubyでサポートされていなかったか、少なくとも本番環境で使用できる程度にはサポートされていませんでした。SimpleCovのバグトラッカーの元の問題は、それが現在機能していることを明示的に述べていません。ただし、このRuby Coverage APIが正しく機能しないことについてJRubyトラッカーにファイルする問題は、この問題が解決されたことを示しています。

JRubyとSimpleCovの両方の最新バージョンで運試しをするべきだと思います。

他のトピックについて:

Rubyの-Iフラグは、ファイルをロードしようとしたときにファイルが検索$LOAD_PATHされる場所を定義するディレクトリを配列に追加します。Ruby 1.9.x以降のファイルは、のディレクトリの1つにある場合にのみ検出され、Rubyプロセスの現在の作業ディレクトリからも検出されなくなりました。.rbrequire$LOAD_PATH

于 2012-11-10T13:30:18.310 に答える