最近、Rails2.3WebアプリでJRubyを使い始めました。それ以来、rspecテストで速度が低下しています... JRubyに切り替えてから、テストの実行に時間がかかりすぎています。
MRIを使用している間、テストをより速く実行するためにsporkを使用することは決してありませんでしたが、今度はテストの実行を高速化する必要があります。
最初に、私はスポークを試しましたが、次の理由でうまくいきませんでした:
- spork 0.9 RCはjrubyをサポートしますが、レール2.3はサポートしません(レール3 のみをサポートします)
- spork 0.8はrails2.3をサポートしていますが、 jrubyはサポートしていません。fork ()を使用していると思います。spork - 0.8gemはjrubyにイベントインストールされません)。
jruby、rails 2.3、spork 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を使用することは可能ですか?