开发者

Rails: specific rake task dependencies for different environments

开发者 https://www.devze.com 2023-01-19 19:01 出处:网络
My main rakefile has some tasks to stop and start selenuim as follows: require \'selenium/rake/tasks\'

My main rakefile has some tasks to stop and start selenuim as follows:

require 'selenium/rake/tasks'

Selen开发者_开发百科ium::Rake::RemoteControlStartTask.new do |rc|
  rc.port = 4444
  rc.timeout_in_seconds = 3 * 60
  rc.background = false
  rc.wait_until_up_and_running = true
  rc.additional_args << "-singleWindow"
end

Selenium::Rake::RemoteControlStopTask.new do |rc|
  rc.host = "localhost"
  rc.port = 4444
  rc.timeout_in_seconds = 3 * 60
end

This forces the requirement to have the selenuim gem installed to use rake regardless of the rails environment. Where can I put this code so it will only be loaded when the rails environment is set to test?

Rails 2.3

Cheers


Are you using Rails 3 or Rails 2?

Rails 3 add a blocks like so:

if Rails.env.test?
  require 'selenium/rake/tasks'

  Selenium::Rake::RemoteControlStartTask.new do |rc|
    rc.port = 4444
    rc.timeout_in_seconds = 3 * 60
    rc.background = false
    rc.wait_until_up_and_running = true
    rc.additional_args << "-singleWindow"
  end

  Selenium::Rake::RemoteControlStopTask.new do |rc|
    rc.host = "localhost"
    rc.port = 4444
    rc.timeout_in_seconds = 3 * 60
  end
end

In Rails 2 (or 3 but it's deprecated) like this:

if RAILS_ENV == "test"
  require 'selenium/rake/tasks'

  Selenium::Rake::RemoteControlStartTask.new do |rc|
    rc.port = 4444
    rc.timeout_in_seconds = 3 * 60
    rc.background = false
    rc.wait_until_up_and_running = true
    rc.additional_args << "-singleWindow"
  end

  Selenium::Rake::RemoteControlStopTask.new do |rc|
    rc.host = "localhost"
    rc.port = 4444
    rc.timeout_in_seconds = 3 * 60
  end
end
0

精彩评论

暂无评论...
验证码 换一张
取 消