Patch #34269 » 0001-Adds-CAPYBARA_SERVER_HOST-CAPYBARA_SERVER_PORT-SELEN.patch
doc/RUNNING_TESTS | ||
---|---|---|
72 | 72 |
Capybara tests can be run with: |
73 | 73 |
`rails test:system` |
74 | 74 | |
75 |
The following environment variables can be used to configure your system tests setup: |
|
76 |
`CAPYBARA_SERVER_HOST`: configure server to run on a custom IP which can be, for example, your remote Selenium IP or 0.0.0.0 to listen an all connections |
|
77 |
`CAPYBARA_SERVER_PORT`: configure server port |
|
78 |
`SELENIUM_REMOTE_URL`: remote Selenium URL |
|
79 |
`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 |
|
80 | ||
81 |
One use case of these variables is to run the system tests on a remote Selenium/ChromeDriver (eg: Docker). |
|
82 | ||
75 | 83 |
Running RuboCop, a static code analyzer |
76 | 84 |
======================================= |
77 | 85 |
test/application_system_test_case.rb | ||
---|---|---|
22 | 22 |
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase |
23 | 23 |
DOWNLOADS_PATH = File.expand_path(File.join(Rails.root, 'tmp', 'downloads')) |
24 | 24 | |
25 |
# Allow running Capybara default server on custom IP address and/or port |
|
26 |
Capybara.server_host = ENV['CAPYBARA_SERVER_HOST'] if ENV['CAPYBARA_SERVER_HOST'] |
|
27 |
Capybara.server_port = ENV['CAPYBARA_SERVER_PORT'] if ENV['CAPYBARA_SERVER_PORT'] |
|
28 | ||
29 |
options = {} |
|
30 |
# Allow running tests using a remote Selenium hub |
|
31 |
options.merge!(url: ENV['SELENIUM_REMOTE_URL']) if ENV['SELENIUM_REMOTE_URL'] |
|
32 |
options.merge!(desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome( |
|
33 |
'chromeOptions' => { |
|
34 |
'prefs' => { |
|
35 |
'download.default_directory' => DOWNLOADS_PATH, |
|
36 |
'download.prompt_for_download' => false, |
|
37 |
'plugins.plugins_disabled' => ["Chrome PDF Viewer"] |
|
38 |
} |
|
39 |
} |
|
40 |
)) |
|
41 | ||
25 | 42 |
driven_by( |
26 | 43 |
:selenium, using: :chrome, screen_size: [1024, 900], |
27 |
options: { |
|
28 |
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome( |
|
29 |
'chromeOptions' => { |
|
30 |
'prefs' => { |
|
31 |
'download.default_directory' => DOWNLOADS_PATH, |
|
32 |
'download.prompt_for_download' => false, |
|
33 |
'plugins.plugins_disabled' => ["Chrome PDF Viewer"] |
|
34 |
} |
|
35 |
} |
|
36 |
) |
|
37 |
} |
|
44 |
options: options |
|
38 | 45 |
) |
39 | 46 | |
40 | 47 |
setup do |
48 |
# Allow defining a custom app host (useful when using a remote Selenium hub) |
|
49 |
Capybara.configure do |config| |
|
50 |
config.app_host = ENV['CAPYBARA_APP_HOST'] |
|
51 |
end if ENV['CAPYBARA_APP_HOST'] |
|
52 | ||
41 | 53 |
clear_downloaded_files |
42 | 54 |
Setting.delete_all |
43 | 55 |
Setting.clear_cache |