Skip to content

Commit

Permalink
Default to selenium with chrome for tests and cleanup travis config
Browse files Browse the repository at this point in the history
  • Loading branch information
twalpole committed Aug 2, 2017
1 parent 7d693f0 commit 154ce24
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 61 deletions.
64 changes: 24 additions & 40 deletions .travis.yml
Expand Up @@ -6,7 +6,6 @@ rvm:
- 2.4.1
- 2.3.3
- jruby-9.1.12.0
- rbx-3
gemfile:
- Gemfile
env:
Expand All @@ -17,34 +16,27 @@ env:
# - WINDOW_TEST=true

addons:
firefox: latest
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
- google-chrome-beta
- awesome

matrix:
include:
- gemfile: gemfiles/Gemfile.rspec-34
rvm: 2.3.3
env: CAPYBARA_CHROME=true
env: CAPYBARA_FF=true
addons:
firefox: latest
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
- awesome
- gemfile: Gemfile
rvm: 2.4.1
env: CAPYBARA_CHROME_HEADLESS=true
addons:
apt:
sources:
- google-chrome
packages:
- google-chrome-stable
- google-chrome-beta
- awesome
env: HEADLESS=true
- gemfile: gemfiles/Gemfile.ruby-20
env:
- CAPYBARA_LEGACY_FF=true
Expand All @@ -54,16 +46,6 @@ matrix:
apt:
packages:
- awesome
- gemfile: gemfiles/Gemfile.ruby-19
env:
- CAPYBARA_LEGACY_FF=true
- SKIP_WINDOW=true
rvm: 1.9.3
addons:
firefox: 47.0.1
apt:
packages:
- awesome
- gemfile: gemfiles/Gemfile.base-versions
env:
- CAPYBARA_LEGACY_FF=true
Expand All @@ -76,40 +58,40 @@ matrix:
- awesome
- gemfile: gemfiles/Gemfile.beta-versions
rvm: 2.3.3
env: CAPYBARA_FF=true
addons:
firefox: latest-beta
apt:
packages:
- awesome
- gemfile: gemfiles/Gemfile.edge-marionette
rvm: 2.3.3
env: CAPYBARA_FF=true
addons:
firefox: latest-nightly
apt:
packages:
- awesome
- gemfile: Gemfile
rvm: 2.4.1
env: CAPYBARA_FF=true HEADLESS=true
addons:
firefox: latest-nightly
script: MOZ_HEADLESS=1 bundle exec rake travis
allow_failures:
- gemfile: gemfiles/Gemfile.beta-versions
- gemfile: gemfiles/Gemfile.edge-marionette
- rvm: rbx-3
- rvm: jruby-9.1.12.0
- gemfile: Gemfile
rvm: 2.4.1
env: CAPYBARA_CHROME_HEADLESS=true
- script: MOZ_HEADLESS=1 bundle exec rake travis
env: CAPYBARA_FF=true HEADLESS=true
- env: HEADLESS=true
before_install:
- mkdir -p ~/drivers; export PATH=~/drivers:$PATH;
- if [ $CAPYBARA_CHROME ] || [ $CAPYBARA_CHROME_HEADLESS ]; then
CHROMEDRIVER_VERSION=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE);
CHROMEDRIVER_URL="http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip";
FILE=`mktemp`; wget "$CHROMEDRIVER_URL" -qO $FILE && unzip $FILE chromedriver -d ~/drivers; rm $FILE; chmod 777 ~/drivers/chromedriver;
~/drivers/chromedriver --version;
fi
- CHROMEDRIVER_VERSION=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE);
CHROMEDRIVER_URL="http://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip";
FILE=`mktemp`; wget "$CHROMEDRIVER_URL" -qO $FILE && unzip $FILE chromedriver -d ~/drivers; rm $FILE; chmod 777 ~/drivers/chromedriver;
~/drivers/chromedriver --version;
- GECKODRIVER_URL="https://github.com/mozilla/geckodriver/releases/download/v0.17.0/geckodriver-v0.17.0-linux64.tar.gz";
FILE=`mktemp`; wget "$GECKODRIVER_URL" -qO $FILE && tar xz -C ~/drivers -f $FILE geckodriver; rm $FILE; chmod 777 ~/drivers/geckodriver;
~/drivers/geckodriver --version;
Expand All @@ -121,10 +103,12 @@ before_install:
bundle config local.selenium-webdriver ../selenium/build/rb;
fi
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- sleep 1
- mkdir -p ~/.config/awesome
- echo "require('awful'); tags = {}; tags[1] = awful.tag({'name'})" > ~/.config/awesome/rc.lua
- "awesome &"
- if [[ -z $HEADLESS ]]; then
export DISPLAY=:99.0;
sh -e /etc/init.d/xvfb start;
sleep 1;
mkdir -p ~/.config/awesome;
echo "require('awful'); tags = {}; tags[1] = awful.tag({'name'})" > ~/.config/awesome/rc.lua;
awesome &
fi
script: "bundle exec rake travis"
6 changes: 3 additions & 3 deletions Rakefile
Expand Up @@ -38,13 +38,13 @@ Cucumber::Rake::Task.new(:cucumber) do |task|
end

task :travis do |t|
if ENV['CAPYBARA_CHROME'] || ENV['CAPYBARA_CHROME_HEADLESS']
Rake::Task[:spec_chrome].invoke
if ENV['CAPYBARA_FF']
Rake::Task[:spec_marionette].invoke
elsif ENV['CAPYBARA_LEGACY_FF']
Rake::Task[:spec_firefox].invoke
Rake::Task[:cucumber].invoke
else
Rake::Task[:spec_marionette].invoke
Rake::Task[:spec_chrome].invoke
Rake::Task[:cucumber].invoke
end
end
Expand Down
14 changes: 0 additions & 14 deletions gemfiles/Gemfile.ruby-19

This file was deleted.

8 changes: 4 additions & 4 deletions spec/selenium_spec_chrome.rb
Expand Up @@ -3,9 +3,9 @@
require 'selenium-webdriver'
require 'shared_selenium_session'

CHROME_DRIVER = if ENV['CAPYBARA_CHROME_HEADLESS'] then :selenium_chrome_headless else :selenium_chrome end
CHROME_DRIVER = if ENV['HEADLESS'] then :selenium_chrome_headless else :selenium_chrome end

if ENV['CAPYBARA_CHROME_HEADLESS'] && ENV['TRAVIS']
if ENV['HEADLESS'] && ENV['TRAVIS']
Selenium::WebDriver::Chrome.path='/usr/bin/google-chrome-beta'
end

Expand All @@ -14,7 +14,7 @@
browser: :chrome,
options: ::Selenium::WebDriver::Chrome::Options.new()
}
chrome_options[:options].args << 'headless' if ENV['CAPYBARA_CHROME_HEADLESS']
chrome_options[:options].args << 'headless' if ENV['HEADLESS']
Capybara::Selenium::Driver.new(app, chrome_options.merge(clear_local_storage: true, clear_session_storage: true))
end

Expand All @@ -24,7 +24,7 @@ module TestSessions

skipped_tests = [:response_headers, :status_code, :trigger]
# skip window tests when headless for now - closing a window not supported by chromedriver/chrome
skipped_tests << :windows if ENV['TRAVIS'] && (ENV['SKIP_WINDOW'] || ENV['CAPYBARA_CHROME_HEADLESS'])
skipped_tests << :windows if ENV['TRAVIS'] && (ENV['SKIP_WINDOW'] || ENV['HEADLESS'])

Capybara::SpecHelper.run_specs TestSessions::Chrome, CHROME_DRIVER.to_s, capybara_skip: skipped_tests

Expand Down
2 changes: 2 additions & 0 deletions spec/selenium_spec_marionette.rb
Expand Up @@ -4,6 +4,8 @@
require 'shared_selenium_session'
require 'rspec/shared_spec_matchers'

ENV['MOZ_HEADLESS']='1' if ENV['HEADLESS']

Capybara.register_driver :selenium_marionette do |app|
Capybara::Selenium::Driver.new(
app,
Expand Down
2 changes: 2 additions & 0 deletions spec/shared_selenium_session.rb
Expand Up @@ -43,11 +43,13 @@
end

it "should have return code 1 when running selenium_driver_rspec_failure.rb" do
skip if ENV['HEADLESS']
system(@env, 'rspec spec/fixtures/selenium_driver_rspec_failure.rb', out: File::NULL, err: File::NULL)
expect($?.exitstatus).to eq(1)
end

it "should have return code 0 when running selenium_driver_rspec_success.rb" do
skip if ENV['HEADLESS']
system(@env, 'rspec spec/fixtures/selenium_driver_rspec_success.rb', out: File::NULL, err: File::NULL)
expect($?.exitstatus).to eq(0)
end
Expand Down

0 comments on commit 154ce24

Please sign in to comment.