我目前正在开发一个有趣的Rails应用程序。
我们在heroku上运行了两个应用程序。一个是一个基本的应用程序,它充当反向代理,它具有多个附加域,并且反向代理我们的主要应用程序(即Rails应用程序)(此应用程序基于主机进行查找,然后进行路由)。 / p>
此设置的原因是允许自定义域指向主应用程序上的“商店页面”,然后这些商店页面会指向原始域以进行结帐。
也许有一个例子可以更好地解释这两个领域: Seller.com platform.com
platform.com代表主应用程序的应用程序主机,seller.com是通过反向代理路由的域。 您可以在Seller.com上选择产品,然后最终在platform.com上结帐
在给定多个域的情况下,我们正在努力使用capybara在主应用程序中测试这种端到端流的方法,有没有办法通过欺骗反向代理或仅使用多个主机来处理此问题?
我尝试过的水豚配置如下
Capybara::Webkit.configure do |config|
config.allow_unknown_urls
config.ignore_ssl_errors
config.skip_image_loading
config.raise_javascript_errors = true
config.allow_url("lvh.me")
config.allow_url("*.lvh.me")
config.allow_url("testdomain.me")
end
Capybara.configure do |config|
config.always_include_port = true
config.javascript_driver = :webkit
config.default_max_wait_time = ENV.has_key?("CI") ? 60 : 10
config.app_host = "http://lvh.me"
end
RSpec.configure do |config|
config.include SubdomainHelper, type: :feature
config.before(type: :request) do
host! "lvh.me"
end
config.before(type: :feature) do
default_url_options[:host] = "http://lvh.me:#{Capybara.server_port}"
end
end
,然后在测试中,我同时尝试了visit "http://testdomain.me"
和将capybara主机都设置为testdomain Capybara.config.host = "http://testdomain.me"
(不知道这种方法将如何工作,因为我需要两个域同时工作)
答案 0 :(得分:0)
您需要设置所有正在使用的域和子域,以解析为可访问AUT的IP地址。通常这将涉及编辑/etc/hosts
或配置本地DNS服务器以报告正确的IP。