ruby-on-rails - 当遇到过时警告时,如何配置Rails引发错误?

标签 ruby-on-rails ruby-on-rails-3 rspec deprecated

我正在将一个相当大的应用程序从Rails 3.0升级到3.2,并试图摆脱所有弃用警告。我的问题不是解决特定警告的更改,而是如何使Rails像对待异常一样对待它们,以便在开发人员模式下转储堆栈跟踪,因此我将拥有完整的堆栈跟踪以查看有问题的代码在哪里来自(哪里。这样,我就可以使用测试套件来查找所有内容,并验证是否已全部清除。如果有一种方法可以使rspec记录弃用警告而使测试失败,那么也可以。

(以防万一,我没有完全升级到Rails 4.0的原因是该应用程序依赖于AFAIK尚未完全适应Rails 4的某些特性,尤其是activerecord-oracle_enhanced-adapter。)

最佳答案

弃用警告由ActiveSupport::Deprecation处理,当某些代码想要显示此类警告时,它将调用

ActiveSupport::Deprecation.warn("some message")

没有引发任何错误。要回答您的问题,恐怕您必须使用深色的猴子修补工具:)无论如何,解决方案是临时使用的,以后将被删除。

更新:

OP在评论中指出了一种快速而合法的方法,因此猴子修补不再是一种选择。

这是他的代码:
# config/environments/test.rb
ActiveSupport::Deprecation.debug = true

关于ruby-on-rails - 当遇到过时警告时,如何配置Rails引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18923478/

相关文章:

ruby-on-rails - Rails 3.2 和 Sass 不呈现 Application.css

ruby-on-rails-3 - 如何水平对齐从 rails 循环生成的 Div

jquery - 使用 JQuery-File-Upload 和 Paperclip 时出现多个文件上传错误

rspec - RSpec 种子在不同的机器上运行是否相同?

ruby - 我如何用有序和 x 次测试 rspec 模拟?

ruby-on-rails - Rails 过滤器钩子(Hook)用于在 Controller 操作运行之后、 View 呈现之前

ruby-on-rails - 如何记录启动 Rails 应用程序所需的时间

ruby-on-rails - Controller 测试中的ActionController::InvalidCrossOriginRequest

html - 在 Rails 中显示标签输出文字 html

rspec - 使用 session sinatra 进行 Rspec 测试