升级到 Rails 5:路由助手未在助手规范中定义
Upgrade to Rails 5: Route helpers are not defined in helper specs
我目前正在从 rails 4.2 升级到 rails 5.0 并设法 fix/update 除了一堆 rspec 测试之外的大部分内容。
当我 运行 我的套件带有 rspec spec/
或 rake parallel:spec
时,我遇到类似以下的间歇性测试失败:
在测试失败之前打印 Rails.application.routes.url_helpers
,并且没有路由。
这主要在我的 helpers & mailers 文件夹中。当我 运行 有 rspec spec/helpers
的助手时,他们都通过了。非常奇怪,因为一些带有路由路径的助手通过了,而另一些则没有。
看了这个,https://github.com/rspec/rspec-rails/issues/1644, rails-controller-testing
is not the issue. This一点帮助都没有。
我正在使用
- rails 5.0.7.2
- rspec-rails 3.8.2
- rails-控制器测试 1.0.4
我为此花了很多时间,终于找到了罪魁祸首。我首先从 specs/
文件夹中一个一个地删除文件夹,然后 --format documentation
我设法将其缩减为一个文件,当它在套件中的 helpers
之前执行时,它撞坏了他们。
那个旧测试
before(:each) do
routes.draw { get 'search' => 'warden#search' }
end
并通过添加
修复
after do
Rails.application.reload_routes!
end
我最终改变了整个测试,最终只是为了摆脱 reload_routes!
,因为它看起来更像是一种破解而不是修复。
我目前正在从 rails 4.2 升级到 rails 5.0 并设法 fix/update 除了一堆 rspec 测试之外的大部分内容。
当我 运行 我的套件带有 rspec spec/
或 rake parallel:spec
时,我遇到类似以下的间歇性测试失败:
在测试失败之前打印 Rails.application.routes.url_helpers
,并且没有路由。
这主要在我的 helpers & mailers 文件夹中。当我 运行 有 rspec spec/helpers
的助手时,他们都通过了。非常奇怪,因为一些带有路由路径的助手通过了,而另一些则没有。
看了这个,https://github.com/rspec/rspec-rails/issues/1644, rails-controller-testing
is not the issue. This一点帮助都没有。
我正在使用
- rails 5.0.7.2
- rspec-rails 3.8.2
- rails-控制器测试 1.0.4
我为此花了很多时间,终于找到了罪魁祸首。我首先从 specs/
文件夹中一个一个地删除文件夹,然后 --format documentation
我设法将其缩减为一个文件,当它在套件中的 helpers
之前执行时,它撞坏了他们。
那个旧测试
before(:each) do
routes.draw { get 'search' => 'warden#search' }
end
并通过添加
修复 after do
Rails.application.reload_routes!
end
我最终改变了整个测试,最终只是为了摆脱 reload_routes!
,因为它看起来更像是一种破解而不是修复。