我试图运行一个系统测试,我访问一个外部服务,然后被重定向回我自己的应用程序。在此系统测试中,我如何访问正在运行的测试的完整URL?我找不到当前的本地主机端口,因此无法将正确的重定向URL发送到外部服务。
daolsyd01#
在互联网上搜索了一段时间后,我找到了答案。基于此post,我添加了
def setup Rails.application.routes.default_url_options[:host] = Capybara.current_session.server.host Rails.application.routes.default_url_options[:port] = Capybara.current_session.server.port end
字符串我的application_system_test_case.rb这允许所有_url方法在系统测试中工作。
application_system_test_case.rb
_url
kxe2p93d2#
Rails 6.唯一对我有用的是:
# inside a subclass of ActionDispatch::IntegrationTest or ActionDispatch::SystemTestCase setup do self.default_url_options = {...} end
字符串
hjqgdpho3#
Rails 6.1.6更新:默认主机似乎是127.0.0.1。为了让它匹配我的开发环境中的服务器主机和端口,在application_system_test_case.rb中我使用了以下命令:
127.0.0.1
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase def setup Capybara.server_host = "localhost" # or whatever you use in dev Capybara.server_port = 3000 # ditto end ...
3条答案
按热度按时间daolsyd01#
在互联网上搜索了一段时间后,我找到了答案。
基于此post,我添加了
字符串
我的
application_system_test_case.rb
这允许所有
_url
方法在系统测试中工作。kxe2p93d2#
Rails 6.唯一对我有用的是:
字符串
hjqgdpho3#
Rails 6.1.6更新:
默认主机似乎是
127.0.0.1
。为了让它匹配我的开发环境中的服务器主机和端口,在application_system_test_case.rb
中我使用了以下命令:字符串