From fd9c4758d5b049d2139660f6c0bce92a5ae38f52 Mon Sep 17 00:00:00 2001 From: Jack Walker Date: Wed, 15 Apr 2020 13:24:51 +1000 Subject: [PATCH] Testing env var w/ Travis --- Gemfile | 3 ++- spec/spec_helper.rb | 38 +++++++++++++--------------- spec/support/browserstack.config.yml | 2 +- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Gemfile b/Gemfile index 8636631f3..4e4b8367a 100644 --- a/Gemfile +++ b/Gemfile @@ -82,9 +82,10 @@ group :test do gem 'irb' gem 'pry-byebug' gem "websocket-client-simple", "~> 0.3.0" - gem 'browserstack-local' end source 'https://rubygems.org' + + diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 515c58bdf..d5c30e745 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -15,8 +15,6 @@ require 'curb' require 'rest-client' require 'yaml' require 'selenium-webdriver' -require 'capybara/cucumber' - # Require supports Dir['spec/support/*.rb'].each do |f| @@ -70,28 +68,28 @@ RSpec.configure do |config| end # BrowserStack config.around(:example, :run_on_browserstack => true) do |example| - Capybara.register_driver :browserstack do |app| - @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps["name"] = ENV['name'] || example.metadata[:name] || example.metadata[:file_path].split('/').last.split('.').first + enable_local = @caps["browserstack.local"] && @caps["browserstack.local"].to_s == "true" - # Code to start browserstack local before start of test - if @caps['browserstack.local'] && @caps['browserstack.local'].to_s == 'true'; - @bs_local = BrowserStack::Local.new - bs_local_args = {"key" => "#{CONFIG['key']}"} - @bs_local.start(bs_local_args) - end - - Capybara::Selenium::Driver.new(app, - :browser => :remote, - :url => "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", - :desired_capabilities => @caps - ) + # Code to start browserstack local before start of test + if enable_local + @bs_local = BrowserStack::Local.new + bs_local_args = { "key" => CONFIG['key'], "forcelocal" => true } + @bs_local.start(bs_local_args) + @caps["browserstack.local"] = true end - Capybara.default_driver = :browserstack + @driver = Selenium::WebDriver.for(:remote, + :url => "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + :desired_capabilities => @caps) - # Code to stop browserstack local after end of test - at_exit do - @bs_local.stop unless @bs_local.nil? + begin + example.run + ensure + @driver.quit + # Code to stop browserstack local after end of test + @bs_local.stop if enable_local end end end diff --git a/spec/support/browserstack.config.yml b/spec/support/browserstack.config.yml index 733243053..2f2797c5c 100644 --- a/spec/support/browserstack.config.yml +++ b/spec/support/browserstack.config.yml @@ -1,6 +1,6 @@ server: "hub-cloud.browserstack.com" user: "craigdonaldson1" -key: "qGsnjShFp9PbmT7dvgQC" +key: "%BROWSERSTACK_ACCESS_KEY%" common_caps: "build": "rspec-browserstack"