我正在开发一个基于sinatra的web应用程序,我广泛地使用测试来确保在部署之前一切正常。作为测试框架,我使用minitest::specs和capybara以及webkit。
我的问题是,在部署之后,我的应用程序使用如下的基本url运行:
http://cool.server.net/to-the-application/
但在测试过程中,水豚假设了一个干净的基本url,它的路径是/
,而不是to-the-application/
。这意味着我无法通过测试找出与忘记在链接和操作中设置base-url相关的bug。
对于干测试,我遵循了Changing the base URL for Rails 3 development并修改了我的config.ru
,但我还没有找到任何方法来让水豚使用不同的基础。
有什么办法解决这个问题吗?
发布于 2017-04-13 19:00:15
如果使用rack_test驱动程序,主机名将被完全忽略,因此更改它不会有任何作用。如果使用不同的驱动程序,则可以指定
Capybara.app_host = "http://cool.server.net"
请注意,cool.server.net通常需要解析到127.0.0.1,因为这是Capybara绑定正在测试的应用程序的地方。
更新:考虑到这一点,我不确定这是你想要的。如果你想让Capybara在/to-the-application
下挂载你的应用程序,那么你必须创建自己的应用程序对象,并将其分配给Capybara.app
-查看https://github.com/teamcapybara/capybara/blob/2.13_stable/lib/capybara/rails.rb#L4了解Capybara当前是如何挂载该应用程序的。
https://stackoverflow.com/questions/43399037
复制相似问题