2017-04-13 25 views
1

我正在开发一个基于sinatra的Web应用程序,并且我广泛使用测试来确保部署前一切正常。作为测试框架,我使用了webkit的minitest :: specs和capybara。更改Capybara验收测试的基础URL

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

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

但在测试过程中水豚假定全新基地的URL与路径/to-the-application/。这意味着我无法测试以发现与忘记在链接和操作中设置基础URL有关的错误。

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

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

+0

我有兴趣更改应用程序的测试,就好像它不在服务器URL的根目录中一样。编辑该问题(希望)更清楚地反映出来... – Jan

回答

1

如果使用rack_test驱动程序,主机名将被完全忽略,因此更改它不会执行任何操作。如果使用的是不同的驱动程序,您可以指定

Capybara.app_host = "http://cool.server.net" 

注意cool.server.net一般会需要,因为那里水豚结合被测试的应用程序这就是解决为127.0.0.1。

更新:想到这个后,我不知道这是你想要的。如果你想要水豚将你的应用程序安装在/to-the-application下,那么你将不得不创建你自己的应用程序对象,你分配给Capybara.app - 请参阅https://github.com/teamcapybara/capybara/blob/2.13_stable/lib/capybara/rails.rb#L4了解Capybara目前如何挂载应用程序。

+0

感谢您的答案,我会挖掘水豚应用程序对象。我曾希望别人读过,并回来告诉它...... 8) – Jan