我正在使用 RSpec、Capybara 和 Selenium 来测试我的本地 Rails 应用程序。Capybara 本身运行良好。我的问题是我在大多数应用程序中都使用了强制 SSL 连接。
我现在的解决方法是配置 Capybara 进行 javascript 测试,如下所示:
Capybara.register_driver :selenium_profile do |app|
profile = Selenium::WebDriver::Firefox::Profile.new
profile.secure_ssl = false
profile.assume_untrusted_certificate_issuer = true
Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
end
Capybara.javascript_driver = :selenium_profile
Capybara.run_server = false
Capybara.server_port = 3001
Capybara.app_host = "https://localhost:%d" % Capybara.server_port
仅当我使用有效的本地 SSL 证书在端口 3001 上独立启动服务器时,这才有效。实际上,这很烦人,通常只是我不喜欢的手动依赖。
有谁知道一个更清洁的解决方法?任何一个:
1) 如何配置 Capybara 的内部服务器以查找和使用我的本地 SSL 证书?,或
2) 如何为 javascript 测试禁用强制 SSL,或者
3) 如何在任何 javascript 测试之前自动启动本地服务器运行?
任何帮助将不胜感激。