Capybara + Steak + SSL

时间:2011-05-03 09:49:39

标签: ssl capybara

我正在使用Steak + Capybara进行验收测试,并使用rack-ssl进行SSL执行,现在,当我尝试运行测试套件时,我收到了错误消息

(错误代码:ssl_error_rx_record_too_long)

知道如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:1)

Capybara推出普通应用服务器(Mongrel / Webrick),它不支持SSL。要在本地计算机上获取SSL环境,您必须使用mod_ssl和mod_proxy设置类似nginx或Apache的东西,以接受SSL连接并向您的开发服务器代理普通的HTTP请求。

然后,您可以在测试环境设置中启动它,并在测试中导航到此SSL服务器而不是应用服务器本身。

注意事项:

要设置“ssl服务器”,您必须创建自签名SSL证书。默认情况下,浏览器不会信任它,直到您将其添加到例外列表中。 AFAIR Capybara selenium驱动程序每次都会创建一个新的Firefox配置文件,因此它将拒绝您的SSL证书。您可能需要购买“真实”证书。

Capybara在随机可用端口上启动其内部服务器,您需要更改它。我记得写过以下内容:

Capybara::Server.class_eval do
  def find_available_port
     @port = 3000
  end
end