Я недавно начал использовать JRuby в своем веб-приложении Rails 2.3.С тех пор я испытываю медлительность в моих тестах rspec ... тест занимает слишком много времени для запуска с тех пор, как я переключился на JRuby.
Во время использования MRI я никогда не удосужился использовать spork для запуска своего теста.тесты быстрее, но теперь мне нужно ускорить выполнение моего теста.
Сначала я попробовал spork, но у меня ничего не вышло, потому что:
- spork0,9 RC поддерживает jruby , но не поддерживает рельсы 2.3 (поддерживает только рельсы 3 )
- 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?