]> source.dussan.org Git - redmine.git/commitdiff
Adds GOOGLE_CHROME_OPTS_ARGS environment variable to define Google Chrome options...
authorGo MAEDA <maeda@farend.jp>
Sun, 10 Jan 2021 00:10:00 +0000 (00:10 +0000)
committerGo MAEDA <maeda@farend.jp>
Sun, 10 Jan 2021 00:10:00 +0000 (00:10 +0000)
Patch by Marius BALTEANU.

git-svn-id: http://svn.redmine.org/redmine/trunk@20708 e93f8b46-1217-0410-a6f0-8f06a7374b81

doc/RUNNING_TESTS
test/application_system_test_case.rb

index 5dec68c23e5cd56e5b98eeec937fbff4668cbdbc..38c4389eb40238687a7f031cbf5c53d466f9e5cb 100644 (file)
@@ -77,6 +77,8 @@ The following environment variables can be used to configure your system tests s
 `CAPYBARA_SERVER_PORT`: configure server port
 `SELENIUM_REMOTE_URL`: remote Selenium URL
 `CAPYBARA_APP_HOST`: by default, the tests expect to have the application running on your localhost. Using this variable, you can set a custom URL
+`GOOGLE_CHROME_OPTS_ARGS`: configure Google Chrome Options arguments as a comma-delimited string. For example, it can be used to run the tests in headless mode:
+    `export GOOGLE_CHROME_OPTS_ARGS="headless,disable-gpu,no-sandbox,disable-dev-shm-usage"`
 
 One use case of these variables is to run the system tests on a remote Selenium/ChromeDriver (eg: Docker).
 
index 7a4e043481b62bed5477bb50767733d4cdc14877..1a1e0cb4a73f2f4b53ef9f2a365fc92b737a9f87 100644 (file)
@@ -21,16 +21,21 @@ require File.expand_path('../test_helper', __FILE__)
 
 class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
   DOWNLOADS_PATH = File.expand_path(File.join(Rails.root, 'tmp', 'downloads'))
+  GOOGLE_CHROME_OPTS_ARGS = []
 
   # Allow running Capybara default server on custom IP address and/or port
   Capybara.server_host = ENV['CAPYBARA_SERVER_HOST'] if ENV['CAPYBARA_SERVER_HOST']
   Capybara.server_port = ENV['CAPYBARA_SERVER_PORT'] if ENV['CAPYBARA_SERVER_PORT']
 
+  # Allow defining Google Chrome options arguments based on a comma-delimited string environment variable
+  GOOGLE_CHROME_OPTS_ARGS = ENV['GOOGLE_CHROME_OPTS_ARGS'].split(",") if ENV['GOOGLE_CHROME_OPTS_ARGS']
+
   options = {}
   # Allow running tests using a remote Selenium hub
   options[:url] = ENV['SELENIUM_REMOTE_URL'] if ENV['SELENIUM_REMOTE_URL']
   options[:desired_capabilities] = Selenium::WebDriver::Remote::Capabilities.chrome(
                   'goog:chromeOptions' => {
+                    'args' => GOOGLE_CHROME_OPTS_ARGS,
                     'prefs' => {
                       'download.default_directory' => DOWNLOADS_PATH,
                       'download.prompt_for_download' => false,