Запуск системных тестов Rails по SSL демонстрирует странное поведение, и я не уверен, является ли это ошибкой или разработкой.
Это очень простое Пример приложения имеет один системный тест, который ищетэлемент на странице индекса.
git clone https://github.com/frankjmattia/rails-ssl-system-tests.git blorgh
cd blorgh
./bin/setup
На этом этапе вы должны создать самозаверяющий сертификат и поручить вашей операционной системе доверять ему.
./bin/generate-blorgh-cert blorgh.test
Это создаст сертификати распечатайте инструкции по доверию в Mac OS X или Ubuntu.Это будет действительно для https://blorgh.test
, https://127.0.0.1
и https://localhost
rake
для запуска системного теста
или
rails s
для запускасервера, а затем перейдите к https://localhost:3000
При выполнении тестов они проходят, однако я получаю сообщение об ошибке из Puma, прежде чем даже сделать запрос.
frankjmattia@lappy-i686 % rake
Run options: --seed 43000
# Running:
Capybara starting Puma...
* Version 3.12.1 , codename: Llamas in Pajamas
* Min threads: 1, max threads: 1
* Listening on ssl://127.0.0.1:56260?key=/Users/frankjmattia/src/blorgh/ssl/blorgh.test.key.pem&cert=/Users/frankjmattia/src/blorgh/ssl/blorgh.test.cert.pem
2019-04-28 16:59:48 -0400: SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request - 336027804>
2019-04-28 16:59:49 -0400: SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request - 336027804>
.
Finished in 3.177669s, 0.3147 runs/s, 0.3147 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
2019-04-28 16:59:49 -0400: Read error: #<EOFError: EOFError>
/Users/frankjmattia/.asdf/installs/ruby/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/client.rb:306:in `try_to_finish'
/Users/frankjmattia/.asdf/installs/ruby/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/client.rb:119:in `reset'
/Users/frankjmattia/.asdf/installs/ruby/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/server.rb:486:in `process_client'
/Users/frankjmattia/.asdf/installs/ruby/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/server.rb:334:in `block in run'
/Users/frankjmattia/.asdf/installs/ruby/2.6.2/lib/ruby/gems/2.6.0/gems/puma-3.12.1/lib/puma/thread_pool.rb:135:in `block in spawn_thread'
Я думаю,это с сервера Capybara, проверяющего responsive?
, но я не уверен, как это доказать или обойти.
Кроме того, хотя все тесты проходят локально,они зависают при работе на платформе CI, такой как SemaphoreCI.
Если это ошибка, то кто это ошибка?Я склоняюсь к Капибаре, но не хочу тратить время на подготовку отчета об ошибке, если у меня нет всех фактов или я не могу адекватно описать его.