summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2021-01-10 00:10:00 +0000
committerGo MAEDA <maeda@farend.jp>2021-01-10 00:10:00 +0000
commite5faa47e22a93fbb660e55a312fc371e32583c54 (patch)
treef7b7cce339e1a14b3e3c3ac49f0151355b13e22f
parent1bf01c5677914e98891c332ffcfcd8a0c60ee7f7 (diff)
downloadredmine-e5faa47e22a93fbb660e55a312fc371e32583c54.tar.gz
redmine-e5faa47e22a93fbb660e55a312fc371e32583c54.zip
Adds GOOGLE_CHROME_OPTS_ARGS environment variable to define Google Chrome options arguments (#34269).
Patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@20708 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--doc/RUNNING_TESTS2
-rw-r--r--test/application_system_test_case.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/doc/RUNNING_TESTS b/doc/RUNNING_TESTS
index 5dec68c23..38c4389eb 100644
--- a/doc/RUNNING_TESTS
+++ b/doc/RUNNING_TESTS
@@ -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).
diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index 7a4e04348..1a1e0cb4a 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -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,