RSpec、Capybara、および Selenium を使用して、ローカルの Rails アプリケーションをテストしています。カピバラ自体は正常に動作しています。私の問題は、ほとんどのアプリケーションで強制 SSL 接続を使用していることです。
私が今持っている回避策の種類は、次のように JavaScript テスト用に Capybara を構成することです。
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) ローカル SSL 証明書を見つけて使用するように Capybara の内部サーバーを構成する方法、または
2) JavaScript テストで強制 SSL を無効にする方法、または
3) javascript テストの前に実行中のローカル サーバーを自動的に起動する方法は?
どんな助けでも大歓迎です。