From 1d95ed266d747a2346f0aea22b2d6ea20af6e002 Mon Sep 17 00:00:00 2001 From: jejacks0n Date: Mon, 29 Apr 2019 15:51:21 -0600 Subject: [PATCH] Switching to chromedriver for tests. --- .travis.yml | 6 +----- Gemfile | 8 -------- spec/spec_helper.rb | 2 +- spec/support/capybara.rb | 13 +++++++++++++ teaspoon-devkit.gemspec | 3 +++ 5 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 spec/support/capybara.rb diff --git a/.travis.yml b/.travis.yml index 1e0e5581..9d85931a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ rvm: - 2.5.0 - 2.6.0 addons: - firefox: latest + chrome: stable gemfile: - gemfiles/rails_5.gemfile - gemfiles/rails_6.gemfile @@ -15,10 +15,6 @@ env: - TEASPOON_DEVELOPMENT=true before_script: - sh -e /etc/init.d/xvfb start - - npm install -g istanbul - - wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz - - mkdir geckodriver && tar -xzf geckodriver-v0.19.1-linux64.tar.gz -C geckodriver - - export PATH=$PATH:$PWD/geckodriver - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter - chmod +x ./cc-test-reporter - ./cc-test-reporter before-build diff --git a/Gemfile b/Gemfile index d224ced2..96591f18 100644 --- a/Gemfile +++ b/Gemfile @@ -5,20 +5,12 @@ gemspec name: "teaspoon" gemspec name: "teaspoon-devkit" gem "rails" -gem "puma" # frameworks gem "teaspoon-jasmine", path: "teaspoon-jasmine" gem "teaspoon-mocha", path: "teaspoon-mocha" gem "teaspoon-qunit", path: "teaspoon-qunit" -# gems that teaspoon can utilize -gem "selenium-webdriver" - -# test dependencies -gem "rspec-rails" -gem "simplecov" - # services gem "rubocop", require: false gem "rubocop-rails_config" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c4546cb8..53ed61f9 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -42,6 +42,6 @@ end config.before(:each, browser: true) do - Capybara.current_driver = Capybara.javascript_driver + Capybara.current_driver = Capybara.javascript_driver = ENV.fetch("CAPYBARA_DRIVER", "chrome_headless").to_sym end end diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb new file mode 100644 index 00000000..df2b59e7 --- /dev/null +++ b/spec/support/capybara.rb @@ -0,0 +1,13 @@ +require "webdrivers" + +def register_driver(name, args = [], opts = {}) + Capybara.register_driver(name) do |app| + options = { args: args + ["window-size=1440,1080"] } + options[:binary] = ENV.fetch("GOOGLE_CHROME_SHIM", nil) + capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(chromeOptions: options.compact) + Capybara::Selenium::Driver.new(app, { browser: :chrome, desired_capabilities: capabilities }.merge(opts)) + end +end + +register_driver(:chrome) +register_driver(:chrome_headless, %w[headless disable-gpu no-sandbox disable-dev-shm-usage]) diff --git a/teaspoon-devkit.gemspec b/teaspoon-devkit.gemspec index e2352de8..339c3666 100644 --- a/teaspoon-devkit.gemspec +++ b/teaspoon-devkit.gemspec @@ -23,10 +23,13 @@ Gem::Specification.new do |s| s.add_dependency "jquery-rails" # test dependencies + s.add_dependency "puma" s.add_dependency "rspec-rails" + s.add_dependency "webdrivers" s.add_dependency "capybara" s.add_dependency "aruba" s.add_dependency "appraisal" + s.add_dependency "simplecov" # for local bundle installs s.add_dependency "jbuilder"