Капибара + Стейк + SSL - PullRequest
4 голосов
/ 03 мая 2011

Я использую Steak + Capybara для приемочного тестирования и rack-ssl для применения SSL, теперь, когда я пытался запустить набор тестов, у меня появляется сообщение об ошибке

(код ошибки: ssl_error_rx_record_too_long)

Есть идеи, как заставить это работать?

1 Ответ

1 голос
/ 12 ноября 2011

Capybara запускает простой сервер приложений (Mongrel / Webrick), который не поддерживает SSL.Чтобы получить среду SSL на вашем локальном компьютере, вам нужно настроить что-то вроде nginx или Apache с mod_ssl и mod_proxy для приема SSL-соединений и прокси-запросов HTTP на ваш сервер devel.

Затем вы можете запустить его на своемнастройка среды тестирования и в ваших тестах переход на этот SSL-сервер, а не на сам сервер приложений.

Предостережения:

Чтобы настроить «ssl-сервер», вам потребуется создать самозаверяющийSSL сертификат.Браузер не доверяет ему по умолчанию, пока вы не добавите его в список исключений.Драйвер AFAIR Capybara selenium каждый раз создает новый профиль Firefox, поэтому он отклоняет ваш сертификат SSL.Возможно, вам придется приобрести «настоящий» сертификат.

Capybara запускает свой внутренний сервер через произвольно доступный порт, вам нужно будет его изменить.Я помню, что писал что-то вроде:

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