Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Sauce OnDemand is a Selenium testing cloud service, developed by Sauce Labs Inc (saucelabs.com). This is the Ruby client adapter for Sauce OnDemand.

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 examples
Octocat-spinner-32 generators
Octocat-spinner-32 lib
Octocat-spinner-32 support
Octocat-spinner-32 test
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile
Octocat-spinner-32 VERSION
README.markdown

sauce

Ruby access to Sauce OnDemand

Features

Current:

  • Drop-in replacement for Selenium::Client::Driver that takes care of connecting to Sauce OnDemand
  • RSpec, Test::Unit, and Rails integration for tests, including automatic setup of Sauce Connect
  • ActiveRecord-like interface for tunnels and jobs: Find/create/destroy

Planned:

  • Include selenium-client RSpec/Test::Unit integration
  • Webrat integration
  • Extend to automatic retrieval of jobs logs, videos, reverse tunnels
  • Start/stop local instances of Sauce RC

Install

gem install sauce

sauce config USERNAME ACCESS_KEY

Examples

Selenium Client driver

require 'rubygems'
require 'sauce'
selenium = Sauce::Selenium.new(:browser_url => "http://saucelabs.com",
    :browser => "firefox", :browser_version => "3.", :os => "Windows 2003",
    :job_name => "My first test!")
selenium.start
selenium.open "/"
selenium.stop

RSpec integration

#!/usr/bin/env ruby
#
# Sample RSpec test case using the Sauce gem
#
require "rubygems"
require "sauce"

# This should go in your spec_helper.rb file if you have one
Sauce.config do |config|
  config.browser_url = "http://saucelabs.com/"
  config.browsers = [
    ["Linux", "firefox", "3.6."]
  ]

  # uncomment this if your server is not publicly accessible
  #config.application_host = "localhost"
  #config.application_port = "80"
end

# If this goes in spec/selenium/foo_spec.rb, you can omit the :type parameter
describe "The Sauce Labs website", :type => :selenium do
  it "should have a home page" do
    page.open "/"
    page.is_text_present("Sauce Labs").should be_true
  end

  it "should have a pricing page" do
    page.open "/"
    page.click "link=Pricing"
    page.wait_for_page_to_load 30000
    page.is_text_present("Free Trial").should be_true
  end
end

Test::Unit integration

#!/usr/bin/env ruby
#
# Sample Test:Unit test case using the Sauce gem
#
require "test/unit"
require "rubygems"
require "sauce"

# This should go in your test_helper.rb file if you have one
Sauce.config do |config|
  config.browser_url = "http://saucelabs.com/"
  config.browsers = [
    ["Linux", "firefox", "3.6."]
  ]

  # uncomment this if your server is not publicly accessible
  #config.application_host = "localhost"
  #config.application_port = "80"
end

class ExampleTest < Sauce::TestCase
    def test_sauce
        page.open "/"
        assert page.title.include?("Sauce Labs")
    end
end

Rails integration

You can use either RSpec or Test::Unit with Rails and Sauce OnDemand. The generator will take care of setting up your helpers with Sauce OnDemand configuration, which you can tweak inside the Sauce.config block.

gem install sauce

script/generate sauce USERNAME ACCESS_KEY

For RSpec, drop something like this in spec/selenium:

require "spec_helper"

describe "my app" do
  it "should have a home page" do
    page.open "/"
    page.is_text_present("Welcome Aboard").should be_true
  end
end

For Test::Unit, drop something like this in test/selenium:

require "test_helper"

class DemoTest < Sauce::RailsTestCase
  test "my app", do
    page.open "/"
    page.is_text_present("Welcome Aboard").should be_true
  end
end

To run your tests, use rake:

rake spec:selenium:sauce

rake test:selenium:sauce

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so we don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2009-2010 Sauce Labs Inc. See LICENSE for details.

Something went wrong with that request. Please try again.