Gaston
Gaston

Reputation: 994

set Rails environment url for selenium remote

I got selenium remote configured and running. I can access my development server (deployed with 'rails s') on '192.168.1.23:3000' from my computer using test methods like 'visit root_path' on capybara with minitest.

However, when I close my development server, I can't access my test server while testing, I just get a chrome error with page not found

test file:

require "test_helper"
feature "dashboard" do
  scenario "test1", :js => true  do
  #Rails.application.routes.default_url_options[:host]= 'http://192.168.1.23:3000' 
  visit root_path
end 

Note: activating line 4 gives me nil when running visit root_path

test_helper.rb

Capybara.configure do |config| 
  config.default_host = 'http://192.168.1.23:3000'
  config.app_host   = 'http://192.168.1.23:3000'
end

I've also tried test environment, test.rb

Rails.application.default_url_options = {:host => "http://192.168.1.23:3000" }
Rails.application.routes.default_url_options = {:host => "http://192.168.1.23:3000" }

Edit: I have rails server configured to listen to external addresses:

boot.rb

#this lets listen to some interfaces,
#https://fullstacknotes.com/make-rails-4-2-listen-to-all-interface/
require 'rubygems'  
require 'rails/commands/server'

module Rails  
  class Server
    alias :default_options_bk :default_options
    def default_options
      default_options_bk.merge!(Host: '192.168.1.23')
    end
  end
end  

Upvotes: 0

Views: 548

Answers (1)

Thomas Walpole
Thomas Walpole

Reputation: 49950

By default Capybara runs the application on a random port, but you've set app_host to only connect on port 3000 (Which is the dev server default). Rather than setting a fixed port in app_host set

Capybara.always_include_port = true
Capybara.app_host = 'http://192.168.1.23`

Then if the random port assignment isn't working due to firewall issues between your selenium remote and local machine you can set

Capybara.server_port = <some fixed port number the test app will get run on>

Upvotes: 1

Related Questions