Add another spec config and associated rake task

This commit is contained in:
Thomas Walpole 2019-03-28 11:08:35 -07:00
parent e385391053
commit c528fe66bb
3 changed files with 49 additions and 1 deletions

View File

@ -20,10 +20,15 @@ end
%w[chrome ie edge chrome_remote firefox_remote safari].each do |driver|
RSpec::Core::RakeTask.new(:"spec_#{driver}") do |t|
t.rspec_opts = rspec_opts
t.pattern = "./spec/*{_spec_#{driver}.rb}"
t.pattern = "./spec/{selenium_spec_#{driver}.rb}"
end
end
RSpec::Core::RakeTask.new(:spec_sauce) do |t|
t.rspec_opts = rspec_opts
t.pattern = './spec/sauce_spec_chrome.rb'
end
RSpec::Core::RakeTask.new(:spec_rack, [] => :rubocop) do |t|
t.rspec_opts = rspec_opts
t.pattern = './spec{,/*/**}/*{_spec.rb}'

View File

@ -46,6 +46,7 @@ Gem::Specification.new do |s|
s.add_development_dependency('rubocop')
s.add_development_dependency('rubocop-performance')
s.add_development_dependency('rubocop-rspec')
s.add_development_dependency('sauce_whisk')
s.add_development_dependency('selenium-webdriver', ['~>3.5'])
s.add_development_dependency('selenium_statistics')
s.add_development_dependency('sinatra', ['>= 1.4.0'])

42
spec/sauce_spec_chrome.rb Normal file
View File

@ -0,0 +1,42 @@
# frozen_string_literal: true
require 'spec_helper'
require 'selenium-webdriver'
require 'sauce_whisk'
# require 'shared_selenium_session'
# require 'rspec/shared_spec_matchers'
Capybara.register_driver :sauce_chrome do |app|
options = {
selenium_version: '3.141.59',
platform: 'macOS 10.12',
browser_name: 'chrome',
version: '65.0',
name: 'Capybara test',
build: ENV['TRAVIS_REPO_SLUG'] || "Ruby-RSpec-Selenium: Local-#{Time.now.to_i}",
username: ENV['SAUCE_USERNAME'],
access_key: ENV['SAUCE_ACCESS_KEY']
}
options.delete(:browser_name)
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(options)
url = 'https://ondemand.saucelabs.com:443/wd/hub'
Capybara::Selenium::Driver.new(app,
browser: :remote, url: url,
desired_capabilities: capabilities,
options: Selenium::WebDriver::Chrome::Options.new(args: ['']))
end
CHROME_REMOTE_DRIVER = :sauce_chrome
module TestSessions
Chrome = Capybara::Session.new(CHROME_REMOTE_DRIVER, TestApp)
end
skipped_tests = %i[response_headers status_code trigger download]
Capybara::SpecHelper.run_specs TestSessions::Chrome, CHROME_REMOTE_DRIVER.to_s, capybara_skip: skipped_tests do |example|
end