Как ускорить первый запрос для локальных тестов пользовательского интерфейса 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
Вероятно, это не решит проблему с первым запросом, но может ускорить выполнение всех тестов - что по-прежнему может быть полезно для вас