Skip to content

Instantly share code, notes, and snippets.

@agibralter
Created April 2, 2010 18:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save agibralter/353514 to your computer and use it in GitHub Desktop.
Save agibralter/353514 to your computer and use it in GitHub Desktop.
Cucumber hooks for culerity + rvm
Before("@culerity,@celerity,@javascript") do |scenario|
unless @env_rvm_jruby
@env_rvm_jruby = {}
require 'yaml'
rvm_info = YAML::load(`bash -l -c 'source ~/.rvm/scripts/rvm; rvm jruby ; rvm info'`).values.first
rvm_info['environment'].each do |k, v|
@env_rvm_jruby[k] = v
end
@env_jruby_path = rvm_info['binaries']['ruby'].gsub(%r{^(.*)/ruby$}, '\1')
end
@env_defaults = {}
@env_rvm_jruby.each do |k, v|
@env_defaults[k] = ENV[k]
ENV[k] = v
end
@env_path = ENV['PATH']
ENV['PATH'] = ENV['PATH'] + ":#{@env_jruby_path}"
end
After("@culerity,@celerity,@javascript") do |scenario|
@env_defaults.each do |k, v|
ENV[k] = v
end
ENV["PATH"] = @env_path
end
@pacoguzman
Copy link

Works great!! Thanks

@agibralter
Copy link
Author

Glad it was helpful!

Unfortunately I couldn't get Celerity to work with my JS so I ended up switching to selenium anyway :(

@pacoguzman
Copy link

I've tested culerity as default_driver and works with my JS but the test are slower than using selenium and I've got errors with the GC.

@agibralter
Copy link
Author

Hmm yeah I thought a headless browser would be faster... but seems like the selenium_webdriver is pretty snappy for me.

@pacoguzman
Copy link

Hi! again :)
I've found an easier solution thats works for me, only symlink jruby-1.4.0 to jruby and everything works without changing anything in the environment of rvm.

Look at this Javswcript testing with cucumber and capybara

@david
Copy link

david commented Sep 8, 2010

With the latest RVM (1.0), line #5 should be changed to

rvm_info = YAML::load(`bash -l -c 'source ~/.rvm/scripts/rvm; rvm jruby ; rvm info'`).values.first

@agibralter
Copy link
Author

Updated. Thanks, David!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment