Ошибка при попытке ускорить мои тесты rspec 1.2 на JRuby и Rails 2.3.10 с использованием nailgun и spork - PullRequest
0 голосов
/ 16 мая 2011

Я недавно начал использовать JRuby в своем веб-приложении Rails 2.3.С тех пор я испытываю медлительность в моих тестах rspec ... тест занимает слишком много времени для запуска с тех пор, как я переключился на JRuby.

Во время использования MRI я никогда не удосужился использовать spork для запуска своего теста.тесты быстрее, но теперь мне нужно ускорить выполнение моего теста.

Сначала я попробовал spork, но у меня ничего не вышло, потому что:

  1. spork0,9 RC поддерживает jruby , но не поддерживает рельсы 2.3 (поддерживает только рельсы 3 )
  2. spork 0.8 поддерживает rails 2.3 , но не поддерживает jruby Я думаю, что он использует fork (), spork-0.8 gem не будет устанавливаться на jruby ).

Я пытался запустить свои тесты на jruby , rails 2.3 и spork 0.9 rc , но это не сработало, на самом деле было предупреждающее сообщение о том, что spork 0.9 rc поддерживает только rails> = 3.0

Затем я попробовал пистолет,установил наilgun gem в моей среде jruby ( gem install nailgun ) и запустил сервер nailgun ( ruby ​​--ng-server в корне моего приложения).Затем я запускаю одну из моих спецификаций ( 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

Итак, яЯ действительно застрял здесь.Кто-нибудь знает, как я могу решить проблему с гвоздем?Если нет, есть ли альтернатива?Можно ли использовать spork в jruby и rails 2.3?

1 Ответ

0 голосов
/ 18 мая 2011

Ох ... Похоже, Джруби не нравится старая версия самоцвета Redis. Обновил мою версию Resque / Redis gem, и она заработала.

...