Saucer

Convenience methods for running your Ruby tests on Sauce Labs

Installation

Add this line to your application's Gemfile:

gem 'saucer'

Usage

Configuration

Can optionally pass in a Config::Selenium instance with any of the supported Test Configuration Options Note that Ruby syntax is a Symbol with snake_case and not String with camelCase

config_selenium = Config::Selenium.new(version: '53', browser_name: :firefox)
@driver = Driver.new(config_selenium)

Cucumber

RSpec doesn't need to be concerned with this, but Cucumber needs an extra step in env.rb:

Before do |scenario|
  Saucer::Config::Sauce.scenario = scenario
  @driver = Saucer::Driver.new
end

After do |scenario|
  Saucer::Config::Sauce.scenario = scenario
  @driver.quit
end

Parallel

The most basic usage for parallel execution is to define the following Rake task, which will every spec in the spec directory in 4 processes on the default Sauce platform (Linux with Chrome v48)

Saucer::Parallel.new.run

To Specify basic number of processes, a specific subdirectory (Cucumber or RSpec), and reporting output file:

Saucer::Parallel.new(number: 7,
                     path: 'features/foo',
                     output: 'foo').run

To specify Sauce configurations, create a Rake Task that takes parameters like this:

task :parallel_sauce do
  configs = [{os: :mac_10_10, browser: :chrome, browser_version: 38},
             {os: :mac_10_11, browser: :firefox, browser_version: 46},
             {os: :mac_10_8, browser: :chrome, browser_version: 42}]

  platforms = configs.map { |c| Saucer::PlatformConfiguration.new(c) }

  Saucer::Parallel.new(platforms: platforms).run
end

or you can use the default rake task and define your configurations in configs/platform_configs.yml like this:

  - :os: :mac_10_10
    :browser: :chrome
    :browser_version: 38
  - :os: :mac_10_11
    :browser: :firefox
    :browser_version: 46
  - :os: :mac_10_8
    :browser: :chrome
    :browser_version: 42

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/saucer.

License

The gem is available as open source under the terms of the MIT License.