Forum: RSpec [Cucumber] and rake pass command-line params

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
C95b0c72d59859bbab5d14f6f2332c1b?d=identicon&s=25 Andre Pretorius (andrexp)
on 2009-02-02 14:29
(Received via mailing list)
Hi list,

I might have not asked this correctly in previous post.. and most
definitely
weren’t clear! let’s try again :)

I can’t seem to find any examples of using a rake variable in the
Cucumber
task. What I want to do is run my cucumber test using cruisecontrol and
setting a variable in script to either to start Firefox or Internet
Explorer
with selenium. Which leads me to the question, how do I access this
browser_type variable in my_steps.rb file?

## Rakefile
Cucumber::Rake::Task.new do |t|
  profile = ENV['PROFILE'] || 'default'
  browser_type = ENV['BROWSER'] || '*chrome'
  t.cucumber_opts = "--profile #{profile}"
end

## my_steps.rb
Before do
  browser = Selenium::SeleniumDriver.new(server_host, server_port,
browser_type, root_url, time_out)
end

Let me guess, it’s very easy... but I am still new to the Ruby World
:clap:

--
View this message in context:
http://www.nabble.com/-Cucumber--and-rake-pass-com...
Sent from the rspec-users mailing list archive at Nabble.com.
0be0e4aa42aacd9a8a95c792de273ca7?d=identicon&s=25 Aslak Hellesøy (aslakhellesoy)
on 2009-02-02 15:02
(Received via mailing list)
On Mon, Feb 2, 2009 at 2:24 PM, AndreXP <andre.x.pretorius@gmail.com>
wrote:
> browser_type variable in my_steps.rb file?
>

I suggest you look up ENV['BROWSER'] (and anything else you might need
to configure Selenium) directly in your my_steps.rb file
(I also suggest you move Before blocks to features/support/env.rb)

# Rakefile
Cucumber::Rake::Task.new do |t|
  profile = ENV['PROFILE'] || 'default'
  t.cucumber_opts = "--profile #{profile}"
end

# features/support/env.rb
Before do
  browser_type = ENV['BROWSER'] || '*chrome'
  browser = Selenium::SeleniumDriver.new(server_host, server_port,
browser_type, root_url, time_out)
end

If you want to rely less on environment variables, you can make
yourself a YAML file with settings (e.g. selenium.yml) consisting of a
Hash of Hash:

chrome:
  server_host: foo
  browser: *chrome
  timeout: 2
ie:
  server_host: bar
  browser: *ie
  timeout: 9

And do something like this in your env.rb:

profile = ENV['PROFILE']
c = YAML.read_file('features/selenium.yml')[profile]
browser = Selenium::SeleniumDriver.new(c['server_host'], ...)

-and be done with one single env var - PROFILE

HTH,
Aslak
C95b0c72d59859bbab5d14f6f2332c1b?d=identicon&s=25 Andre Pretorius (andrexp)
on 2009-02-02 17:27
(Received via mailing list)
Great advice, I did all the suggestions you made, and... it is GOOD and
CLEAN:)

Thanks Aslak
This topic is locked and can not be replied to.