更改Capybara验收测试的基本URL

时间:2017-04-13 18:09:25

标签: ruby sinatra capybara rack minitest

我正在开发一个基于sinatra的Web应用程序,我广泛使用测试来确保在部署之前一切正常。作为测试框架,我使用minitest :: specs和capybara with webkit。

我的问题是,在部署之后,我的应用程序使用这样的基本URL运行:

http://cool.server.net/to-the-application/

但是在测试期间,水豚会假设一个干净的基本网址,其路径为/而不是to-the-application/。这意味着我无法测试以找到与忘记在链接和操作中设置base-url相关的错误。

对于干测试我跟着Changing the base URL for Rails 3 development并修改了我的config.ru,但我还没有找到任何方法让水豚使用不同的基础。

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果使用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目前正在安装该应用程序。