Как ускорить первый запрос для локальных тестов пользовательского интерфейса Rails

Я использую шпинат, Capybara и Poltergeist вместе для написания автоматических тестов пользовательского интерфейса. Я пытался ускорить выполнение тестов локально. Я использую Spring, который немного помогает с загрузкой среды. Впрочем, первый запрос (visit) к серверу приложений, который запускает Poltergeist, идет медленно, потому что Rails должен скомпилировать ресурсы в первый раз. Я попытался запустить локальный сервер в тестовой среде, а затем сделать это в моем шпинате env.rb файл:

::Capybara.run_server = false
::Capybara.app_host = "http://localhost:#{ENV['TEST_SERVER_PORT']}"

Это затрудняет отладку, поскольку веб-сервер работает не так, как процесс шпината. Кроме того, предварительная компиляция ресурсов не является хорошим решением, потому что мне не нужно запускать его каждый раз, когда я что-то настраиваю в файле JS, а затем запускаю тесты для проверки моих изменений.

Итог: кто-нибудь разобрался, как сделать первый тестовый запрос сервера быстрее?

2 ответа

Во-первых, я бы настроил rspec-retry, Во-вторых, попробуйте это в spec/rails_helper.rb:

RSpec.configure do |config|
  config.before(:all) { visit '/' if defined?(visit) }
end

Вы можете использовать параллельные тесты для шпината

https://github.com/grosser/parallel_tests

Вероятно, это не решит проблему с первым запросом, но может ускорить выполнение всех тестов - что по-прежнему может быть полезно для вас

Другие вопросы по тегам