Error al intentar hacer que mis pruebas de rspec 1.2 sean más rápidas en JRuby y Rails 2.3.10 usando nailgun y spork

Recientemente comencé a usar JRuby en mi aplicación web Rails 2.3. Desde entonces, he estado experimentando lentitud en mis pruebas de rspec ... la prueba está tardando demasiado en ejecutarse desde que cambié a JRuby.

Mientras usaba MRI, nunca me molesté en usar spork para ejecutar mis pruebas más rápido, pero ahora necesito acelerar la ejecución de mi prueba.

Primero, probé spork, pero no funcionó porque:

  1. spork 0.9 RC apoya jruby, pero no es compatible rieles 2.3 (solo admite rieles 3)
  2. spork 0.8 apoya rieles 2.3, pero no es compatible jruby Creo que usa fork (), el gema spork-0.8 no se instalará en el evento jruby).

Traté de ejecutar mis pruebas en jruby, rieles 2.3 y spork 0.9 rc, pero no funcionó, de hecho, había un mensaje de advertencia que decía que spork 0.9 rc solo soportes rieles> = 3.0

Luego probé la pistola de clavos, instalé la gema de la pistola de clavos en mi entorno jruby (gema instalar pistola de clavos) e inició el servidor de pistolas de clavos (ruby --ng-servidor en la raíz de mi aplicación). Luego ejecuto una de mis especificaciones (ruby --ng -S spec spec / lib / importacao_atividades_spec.rb). La primera vez que ejecuté la especificación, salió bien, pero después de eso siguió aumentando RuntimeError: tiempo de ejecución no válido

Verifique el rastro:

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

Así que estoy realmente atrapado aquí. ¿Alguien sabe cómo puedo solucionar el problema de la pistola de clavos? Si no es así, ¿hay alguna alternativa? ¿Es posible utilizar spork en jruby y rails 2.3?

preguntado el 16 de mayo de 11 a las 19:05

Si tiene el representante, agregue la etiqueta de pistola de clavos a mi publicación. -

1 Respuestas

Oh ... Parece que a jruby no le gusta una versión anterior de la gema Redis. Actualicé mi versión de la gema Resque / Redis y funcionó.

contestado el 18 de mayo de 11 a las 00:05

¿Cómo sabías que ese era el problema? - Paul biggar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.