升级到Rails 5:路由帮助程序未在帮助程序规范中定义

问题描述 投票:0回答:1

我目前正在从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/1644rails-controller-testing不是问题。 This完全没有帮助。

我正在使用

  • rails 5.0.7.2
  • rspec-rails 3.8.2
  • rails-controller-testing 1.0.4
rspec ruby-on-rails-5 rspec-rails
1个回答
1
投票

我花了很多时间在此上,终于找到了罪魁祸首。我首先从specs/文件夹中一个文件夹中删除了一个文件夹,然后让--format documentation缩减为一个文件,当该文件在套件中的helpers之前执行时,它崩溃了。

那个旧测试有

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

并通过添加进行固定

  after do  
    Rails.application.reload_routes!
  end

我最终改变了整个测试,最终只是为了摆脱reload_routes!,因为它似乎更像是一种破解而不是修复。

© www.soinside.com 2019 - 2024. All rights reserved.