I had recently switched a rails 2.3.10 project, that makes heavy use of cucumber and culerity for javascript testing, to bundler for dependency management and immediately started receiving an error like this when I tried to run a javascript test which invoked jruby.
@javascript
Scenario: Ability to un-attend an event # features/events.feature:22
JRuby limited openssl loaded. http://jruby.org/openssl
gem install jruby-openssl for full support.
Given I am logged in as the admin # features/step_definitions/admin_steps.rb:12
(eval):1:in `process_result': compile error
(eval):1: Invalid char ` 33' in expression
(eval):1: syntax error, unexpected tIDENTIFIER, expecting ']'
Could not find rake-0.8.7 in any of the sources
^ (SyntaxError)
I searched and searched and couldn’t find a solution. I finally ended up using selenium to avoid this and that has been working okay for a while. Then today I decided to start looking again, figuring that something might have happened in the last few months, and I was lucky enough to stumble across this gist. The author was having a similar problem to mine, except that he was using rspec and steak. His solution was to add some code to his spec_helper.rb file. I added mine to my features/support/custom.rb file so that it would be loaded by cucumber. The fix is:
# Add this to features/support/custom.rb if ENV['RUBYOPT'] ENV['RUBYOPT'] = ENV['RUBYOPT'].gsub(%r{-rs*bundler/setup}, '') end |
I don’t know exactly what is happening, the only comment in the gist near the fix is suppress '-rbundler/setup' from RUBYOPT, but what’s important is that now my cucumber tests pass using culerity just like they did before.