ruby-on-railsseleniumwindows-subsystem-for-linuxsystem-testing

In Rails 5.2 how can I configure my system tests to use a selenium remote server?


My current development setup is using Windows 10 with WSL (Windows Subsystem for Linux) and Rails 5.2 app. I've been attempting for days to get my system tests to execute and I believe I've discovered that the only way to do that using WSL is to use a remote server that's run on Windows 10. I've followed this guide here, but I'm still unable to get it to work. I'm guessing that my application_system_test_case.rb file is incorrect and am looking for someone to perhaps help me in correcting it.

Currently when trying to run the system tests I get the following error.

Error:

daveomcd@mcdonald-PC9020:~/rails_projects/haystack_scout$ rails test test/system/users_test.rb
Running via Spring preloader in process 960
/home/daveomcd/.rvm/gems/ruby-2.5.1/gems/spring-2.0.2/lib/spring/application.rb:185: warning: Insecure world writable dir /home/daveomcd/.rvm/rubies/ruby-2.5.1 in PATH, mode 040777
Run options: --seed 10702

# Running:

E

Error:
UsersTest#test_visiting_the_index:
ArgumentError: unknown driver: :selenium_remote_chrome
    test/system/users_test.rb:8:in `block in <class:UsersTest>'

Error:
UsersTest#test_visiting_the_index:
ArgumentError: unknown driver: :selenium_remote_chrome



bin/rails test test/system/users_test.rb:7



Finished in 0.134354s, 7.4430 runs/s, 0.0000 assertions/s.
1 runs, 0 assertions, 0 failures, 1 errors, 0 skips

Solution

  • So I discovered that I could run system tests in Windows 10 using WSL with headless_chrome. However it was quite a struggle trying to get the versions of chromedriver and selenium-webdriver to work together nicely.

    I'm currently using chromedriver 2.40, just run chromedriver-update "2.40". I also used the following in my gemfile according to this Github issue link. gem 'selenium-webdriver', git: 'https://github.com/SeleniumHQ/selenium.git', ref: '36e4f3e25e1a1a00335a24e3c918d74bb370a1e7'

    According to the issue page it seems like I can try without in several days once they push up the fix as well.