Обновление до Rails 5: помощники маршрутов не определены в спецификациях помощников - PullRequest
0 голосов
/ 27 сентября 2019

В настоящее время я обновляю rails 4.2 до rails 5.0, и мне удалось исправить / обновить большинство вещей, за исключением нескольких тестов rspec.

Когда я запускаю свой пакет с rspec spec/ или rake parallel:spec, я получаю прерывистые тестовые сбои, подобные:

enter image description here

Напечатано Rails.application.routes.url_helpers прямо перед неудачными тестами и нет маршрута.

Это в основном в моей папке helpers & mailers.Когда я запускаю помощников с rspec spec/helpers, они все проходят.Это очень странно, потому что некоторые помощники с путями к ним проходят, а некоторые нет.

Посмотрите на это, https://github.com/rspec/rspec-rails/issues/1644, rails-controller-testing не проблема. Это совсем не помогло.

Я использую

  • rails 5.0.7.2
  • rspec-rails 3.8.2
  • rails-controller-testing 1.0.4

1 Ответ

1 голос
/ 27 сентября 2019

Я потратил много времени на это и, наконец, нашел виновника.Я начал с удаления папок одна за другой из папки specs/ и, получив --format documentation, мне удалось сократить до одного файла, который при запуске до helpers в наборе приводил к сбою.

Этот старый тест имел

before(:each) do
  routes.draw { get 'search' => 'warden#search' }
end

и исправлялся добавлением

  after do  
    Rails.application.reload_routes!
  end

В итоге я в конечном итоге изменил весь тест, просто чтобы избавиться от reload_routes!, потому что он казался болеевзломать, чем исправить.

...