2017-01-19 4 views
0

Ich habe Selen remote konfiguriert und läuft. Ich kann meinen Entwicklungsserver (bereitgestellt mit 'rails s') auf '192.168.1.23: 3000' von meinem Computer mit Testmethoden wie 'Besuch root_path' auf Capybara mit Minitest zugreifen.set Rails Umgebung url für Selen Fernbedienung

Allerdings, wenn ich meinen Entwicklungs-Server zu schließen, kann ich nicht meinen Test-Server zugreifen, während Tests, ich Seite nur einen Chrom-Fehler erhalte nicht

Datei

Test gefunden:

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 

Hinweis : 4 gibt mir null Linie zu aktivieren, wenn Besuch 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 
läuft

Ich habe auch tried Testumgebung, 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: Ich habe Schienen-Server an externe Adressen hören konfiguriert:

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 

Antwort

1

Standardmäßig führt Capybara die Anwendung auf einen zufälligen Port, aber Sie e setze app_host, um nur auf Port 3000 zu verbinden (Was ist der Dev-Server-Standard). Anstatt einen festen Anschluss in app_host Inbetriebn

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

Dann, wenn die zufällige Portzuordnung nicht funktioniert aufgrund Firewall-Probleme zwischen Selen Remote- und lokalen Maschine können Sie einstellen,

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

nicht funktioniert . Ich kann keine Verbindung herstellen und auch keinen Server-Port zuweisen – Gaston

+0

Wenn Sie den Server-Port zugewiesen haben, können Sie von Ihrem Computer aus auf http://192.168.1.23: zugreifen? Hast du deine default_url_options Einstellungen auskommentiert? Eine andere Sache, die Sie überprüfen müssen, ist, ob Sie 'Capybara.server_host' einstellen müssen. Standardmäßig bindet sie den Server an 127.0.0.1 - Sie müssen dies möglicherweise ändern, um an eine andere Schnittstelle zu binden (je nachdem, welche 192.168.1.23 weitergeleitet wird) angenommen, es war 127.0.0.1, weil du sagtest "rails s" funktioniert. Außerdem haben Sie 'Capybara.run_server = false 'nicht richtig eingestellt? –

+0

Ich habe entfernt: 'Rails.application.default_url_options ...' und 'Rails.application.routes.default_url_options ...'. Ich kann auf 192.168.1.23: 3000 von jedem PC während des Rake-Tests nicht zugreifen. Jetzt habe ich: 'Capybara.always_include_port = true' 'Capybara.server_port = 3000' Capybara.server_host = 'http: //192.168.1.23'''Capybara.run_server = false' – Gaston