module Sauce::RSpec

Public Class Methods

register_default_hook() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 76
def self.register_default_hook
  Sauce.config do |c|
    c.after_job :rspec do |id, platform, name, success|
      SauceWhisk::Jobs.change_status id, success
    end
  end
end
register_jenkins_hook() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 84
def self.register_jenkins_hook
  Sauce.config do |c|
    c.after_job :jenkins do |id, platform, name, success|
      puts "SauceOnDemandSessionID=#{id} job-name=#{name}"
    end
  end
end
server() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 12
def self.server
  return @@server
end
server=(s) click to toggle source
# File lib/sauce/rspec/rspec.rb, line 16
def self.server=(s)
  @@server = s
end
setup_environment() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 20
def self.setup_environment
  ::RSpec.configuration.before(:all, :sauce => true) do
    Sauce::RSpec.start_tools_for_sauce_tag
  end

  ::RSpec.configuration.before :all do
    Sauce::RSpec.start_tools_for_selenium_directory
    Sauce::RSpec.register_default_hook
    Sauce::RSpec.register_jenkins_hook if ENV['JENKINS_SERVER_COOKIE']
  end
  
  ::RSpec.configuration.after :suite do
    Sauce::RSpec.stop_tools
  end
end
start_tools_for_sauce_tag() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 36
def self.start_tools_for_sauce_tag
  Sauce.logger.debug "Starting Tooling for 'sauce' tagged tests"
  config = Sauce::Config.new
  if config[:start_tunnel]
    Sauce.logger.debug " - Sauce Connect"
    Sauce::Utilities::Connect.start_from_config(config)
  end

  unless self.server
    Sauce.logger.debug " - Rails Server"
    self.server= Sauce::Utilities::RailsServer.start_if_required(config)
  end
end
start_tools_for_selenium_directory() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 50
def self.start_tools_for_selenium_directory
  config = Sauce::Config.new
  # TODO: Check which rspec version this changed in -- If < 2, change.
  files_to_run = ::RSpec.configuration.respond_to?(:files_to_run) ? ::RSpec.configuration.files_to_run :
    ::RSpec.configuration.settings[:files_to_run]

  running_selenium_specs = files_to_run.any? {|file| file =~ /spec\/selenium\//}
  need_tunnel = running_selenium_specs && config[:application_host]

  if running_selenium_specs
    Sauce.logger.debug "Starting Tooling for Selenium directory tests"
  end

  if need_tunnel && config[:start_tunnel]
    Sauce.logger.debug " - Sauce Connect"
    Sauce::Utilities::Connect.start_from_config(config)
  end

  if running_selenium_specs
    unless self.server
      Sauce.logger.debug " - Rails Server"
      self.server= Sauce::Utilities::RailsServer.start_if_required(config)
    end
  end
end
stop_tools() click to toggle source
# File lib/sauce/rspec/rspec.rb, line 92
def self.stop_tools
  Sauce::Utilities::Connect.close
  server.stop if self.server
  Sauce::Utilities.warn_if_suspect_misconfiguration
end