2017-01-19 13 views
0

У меня есть настроенный и запущенный селен. Я могу получить доступ к моему серверу разработки (развернутому с помощью «rails s») на «192.168.1.23:3000» с моего компьютера, используя методы тестирования, такие как «посещать root_path» на capybara с помощью minitest.set Rails environment url для selenium remote

Однако, когда я закрываю сервер разработки, я не могу получить доступ к своему тестовому серверу во время тестирования, я просто получаю ошибку хром с страница не найдена

тестовый файл:

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 

Примечание : активация линии 4 дает мне ноль при запуске визита 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 

Я также tried тестовая среда, 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: У меня есть рельсы сервер настроен на прослушивание к внешним адресам:

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 

ответ

1

По умолчанию Capybara запускает приложение на случайном порту, но you'v e установить app_host для подключения только к порту 3000 (что является дефолтом по умолчанию). Вместо того, чтобы устанавливать фиксированный порт в app_host установлен

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

Тогда если случайное назначение портов не работает из-за проблем брандмауэра между вашим Селен и локальной машине можно установить

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

Не работает , Я не могу подключиться, даже назначая server_port – Gaston

+0

Когда вы назначили порт сервера, вы можете получить доступ к нему со своего компьютера по адресу http://192.168.1.23:<назначенный порт>? Вы закомментировали настройки default_url_options? Еще одна вещь, которую нужно проверить, - установить ли вам «Capybara.server_host» по умолчанию, привязывает сервер к 127.0.0.1 - вам может потребоваться изменить это для привязки к другому интерфейсу (в зависимости от того, какой из 192.168.1.23 будет перенаправлен) I предположил, что он был 127.0.0.1, потому что вы сказали, что «рельсы s» работают. Кроме того, вы не задали 'Capybara.run_server = false' право? –

+0

Я удалил: «Rails.application.default_url_options ...» и «Rails.application.routes.default_url_options ...». Я не могу получить доступ к 192.168.1.23:3000 из любого ПК во время теста рейка. Теперь у меня есть: «Capybara.always_include_port = true» Capybara.server_port = 3000 'Capybara.server_host =' http: //192.168.1.23'''Capybara.run_server = false ' – Gaston