Do testów używam cucumbera wraz z celerity poprzez culerity. A, że celerity korzysta z html_unit to musi działać na jrubym.
Bundlerem zainstalowalem gemy do ./vendor
i mam wszystkie gemy dla MRI w ./vendor/ruby/gems
a celerity w ./vendor/jruby/gems/celerity-…
OK, tak jest dobrze bo celerity jest oznaczony w Gemfile’u jako :platform => ‘jruby’
ale gdy chcę skorzystać z testów wywala mi błąd:
/usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require': no such file to load -- celerity (LoadError)
from /usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from <my_project_path>/vendor/ruby/1.8/gems/culerity-0.2.12/lib/culerity/celerity_server.rb:2
from <my_project_path>/ruby/1.8/gems/culerity-0.2.12/lib/culerity/celerity_server.rb:36:in `require'
from /usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from <my_project_path>/ruby/1.8/gems/culerity-0.2.12/lib/start_celerity.rb:2
undefined method `first' for nil:NilClass (NoMethodError)
<my_project_path>/vendor/ruby/1.8/gems/culerity-0.2.12/lib/culerity/remote_object_proxy.rb:51:in `process_result'
<my_project_path>/ruby/1.8/gems/culerity-0.2.12/lib/culerity/remote_object_proxy.rb:40:in `send_remote'
<my_project_path>/vendor/ruby/1.8/gems/culerity-0.2.12/lib/culerity/remote_object_proxy.rb:25:in `method_missing'
<my_project_path>/vendor/ruby/1.8/gems/culerity-0.2.12/lib/culerity/remote_browser_proxy.rb:8:in `initialize'
./features/support/env.rb:78:in `new'
./features/support/env.rb:78
<my_project_path>/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in `polyglot_original_require'
<my_project_path>/ruby/1.8/gems/polyglot-0.2.9/lib/polyglot.rb:70:in `require'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:95:in `require_files'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:104:in `each_lib'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:102:in `each'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:102:in `each_lib'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:95:in `require_files'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:47:in `execute!'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/../lib/cucumber/cli/main.rb:25:in `execute'
<my_project_path>/ruby/1.8/gems/cucumber-0.3.11/bin/cucumber:9
<my_project_path>/ruby/1.8/bin/cucumber:23:in `load'
<my_project_path>/ruby/1.8/bin/cucumber:23
JRuby jest uruchamiany jako nowy proces i zastanawiam się jakie gemy on wtedy “zna”. Napewno nie widzi celerity zainstalowanego przez bundlera…