我得到了selenium远程配置和运行。我可以使用像minyst上的'visit root_path'这样的测试方法从我的计算机上访问我的开发服务器(使用'rails s'部署)'192.168.1.23:3000'。
然而,当我关闭我的开发服务器时,我无法在测试时访问我的测试服务器,我只是在找不到页面时出现chrome错误
测试文件:
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
注意:在运行访问root_path
时,激活第4行会给我niltest_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" }
编辑: 我将rails服务器配置为侦听外部地址:
的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
答案 0 :(得分:1)
默认情况下,Capybara在随机端口上运行应用程序,但您已将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>