所以我有一些我想测试的功能。
对于我希望将请求发送给其他主机的部分功能。
当我在本地(在Capybara之外)测试我的代码时,我可以使用localhost:3000
作为部分请求,0.0.0.0:3000
作为另一部分请求。
有关使用Capybara复制此方法的最佳方法的任何想法吗?
如果我将默认主机设置为localhost:3000
并自行启动服务器,则可以正常运行。但是还没有能够让它工作。
FWIW我正在使用poltergeist作为js驱动程序。
答案 0 :(得分:1)
控制启动测试服务器下的应用程序的两个Capybara设置是FactoryBot.define do
factory :comment do
commenter { Faker::Lorem.sentence }
description { Faker::Lorem.paragraph }
post_id nil
end
end
(默认为127.0.0.1)和Capybara.server_host
(默认为随机空闲端口)。获得所需内容的一种方法是修复端口,然后选择一个域,将所有主机名都解析为127.0.0.1(可能是您计算机上的Capybara.server_port
- 或者为.test
添加新名称解析为127.0.0.1的文件)
hosts
另一个选项是设置Capybara.server_port = 9999
visit('/') # will go to http://127.0.0.1:9999/
visit('http://127.0.0.1:9999')
visit('http://my_app.test:9999')
,它将覆盖任何访问调用的端口,该访问调用没有明确包含端口Capybara运行其服务器的端口(因此可以保留随机端口) Capybara选择)
Capybara.always_include_port = true