3

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 テストの前に実行中のローカル サーバーを自動的に起動する方法は?

どんな助けでも大歓迎です。

4

1 に答える 1