This doesn’t work as is, because the default dependencies
command(1) doesn’t exclude the development
group.
We could override the default command, but our next try has been this:
group :test do
...
gem "chromedriver-helper" unless ENV.key?('CIRCLECI')
end
This does succeed at preventing the installation of the problematic newer version of ChromeDriver, but we have now another problem: Selenium WebDriver fails to connect to ChromeDriver, with this error message:
Selenium::WebDriver::Error::WebDriverError:
unable to connect to chromedriver 127.0.0.1:9515
EDIT: we fixed this by rebuilding without cache. I guess that some files created by the gem and kept in the cache were interfering even after the gem was disabled.
A quick search on the forums led me to a topic discussing a similar issue. Interestingly, one of the solutions proposed to solve this is to use the gem that we just disabled
This could work if chromedriver-helper
allowed to configure the ChromeDriver version to install, but it’s not currently the case (there is an open pull-request for this on GitHub).
I haven’t really dug into this yet. I’d like to figure out the ChromeDriver connection problem, possibly by understanding how/why it worked with the gem, but I might use a patched version of the gem that allows pinning the ChromeDriver version to 2.27
as a quick workaround.
(1): defaut dependencies
command:
$ bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --jobs=4 --retry=3