0

最近、Rails2.3WebアプリでJRubyを使い始めました。それ以来、rspecテストで速度が低下しています... JRubyに切り替えてから、テストの実行に時間がかかりすぎています。

MRIを使用している間、テストをより速く実行するためにsporkを使用することは決してありませんでしたが、今度はテストの実行を高速化する必要があります。

最初に、私はスポークを試しましたが、次の理由でうまくいきませんでした:

  1. spork 0.9 RCjrubyをサポートしますが、レール2.3はサポートしません(レール3 のみをサポートします)
  2. spork 0.8rails2.3をサポートしていますが、 jrubyはサポートしていません。fork ()を使用していると思います。spork - 0.8gemはjrubyにイベントインストールされません)。

jrubyrails 2.3spork 0.9 rcテストを実行しようとしましたが、機能しませんでした。実際、 spork0.9rcはrails>=3.0のみをサポートしているという警告メッセージが表示されました。

次に、nailgunを試し、jruby環境にnailgun gemをインストールし(gem install nailgun)、nailgunサーバー(アプリのルートにあるruby --ng-server )を起動しました。次に、自分の仕様の1つを実行します(ruby --ng -S spec spec / lib / importacao_atividades_spec.rb)。初めてスペックを実行したときは問題なく動作しましたが、その後もRuntimeErrorが発生し続けました:無効なランタイム

トレースを確認します。

RuntimeError: invalid runtime
       require at org/jruby/RubyKernel.java:1038
       require at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/activesupport-2.3.10/lib/active_support/dependencies.rb:184
        (root) at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/mysql-2.8.1/lib/mysql.rb:3
       require at org/jruby/RubyKernel.java:1038
       require at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/mysql-2.8.1/lib/mysql.rb:68
          each at org/jruby/RubyArray.java:1602
       require at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/bundler-1.0.12/lib/bundler/runtime.rb:66
          each at org/jruby/RubyArray.java:1602
       require at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/bundler-1.0.12/lib/bundler/runtime.rb:55
       require at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/bundler-1.0.12/lib/bundler.rb:120
     load_gems at /Users/razenha/Projects/Pro/portaltrademarketing/config/boot.rb:116
       process at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rails-2.3.10/lib/initializer.rb:164
          send at org/jruby/RubyKernel.java:2052
           run at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rails-2.3.10/lib/initializer.rb:113
        (root) at /Users/razenha/Projects/Pro/portaltrademarketing/config/environment.rb:12
       require at org/jruby/RubyKernel.java:1038
       require at /Users/razenha/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29
        (root) at /Users/razenha/Projects/Pro/portaltrademarketing/config/environment.rb:47
       require at org/jruby/RubyKernel.java:1038
       require at /Users/razenha/.rvm/rubies/jruby-1.6.1/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29
        (root) at /Users/razenha/Projects/Pro/portaltrademarketing/spec/spec_helper.rb:1
          load at org/jruby/RubyKernel.java:1063
    load_files at ./spec/lib/importacao_atividades_spec.rb:15
          each at org/jruby/RubyArray.java:1602
    load_files at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb:14
  run_examples at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rspec-1.2.9/lib/spec/runner/options.rb:132
           run at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rspec-1.2.9/lib/spec/runner/command_line.rb:9
        (root) at /Users/razenha/.rvm/gems/jruby-1.6.1/gems/rspec-1.2.9/bin/spec:5
          load at org/jruby/RubyKernel.java:1063
        (root) at /Users/razenha/.rvm/gems/jruby-1.6.1/bin/spec:19

だから私は本当にここで立ち往生しています。ネイルガンの問題を解決する方法を知っている人はいますか?そうでない場合、代替手段はありますか?jrubyとrails2.3でsporkを使用することは可能ですか?

4

1 に答える 1

0

ああ...jrubyは古いバージョンのRedisgemが好きではないようです。Resque / Redisのgemバージョンを更新すると、機能しました。

于 2011-05-17T20:59:09.600 に答える