soc*_*onk 17 rspec ruby-on-rails deprecated ruby-on-rails-3
我正在将一个相当大的应用程序从Rails 3.0升级到3.2,并试图摆脱所有弃用警告.我的问题不是要改变什么来解决特定的警告,而是如何让Rails像异常那样对待它们,这样它就会在开发模式下转储堆栈跟踪,所以我将拥有完整的堆栈跟踪来查看违规代码的位置来自(哪里.这样我就可以使用我的测试套件找到它们,并验证它们都已清理干净.如果有一种方法可以让rspec在测试时失败,如果它记录了一个弃用警告,那也可以.
(如果有人想知道,我没有一直升级到rails 4.0的原因是该应用依赖于AFAIK还没有为rails 4做好充分准备的一些宝石,尤其是activerecord-oracle_enhanced-adapter.)
Wol*_*ang 26
在Rails 4中,您可以使用配置
config.active_support.deprecation = :raise
Run Code Online (Sandbox Code Playgroud)
在你的test.rb或development.rb文件中.
其他可用的方法可以在 ActiveSupport::Deprecation::Behaviour
Bil*_*han 10
弃用警告由ActiveSupport :: Deprecation处理,当某些代码想要显示此类警告时,它会调用
ActiveSupport::Deprecation.warn("some message")
Run Code Online (Sandbox Code Playgroud)
没有抛出错误. 要回答你的问题,我担心你必须使用猴子修补的黑暗工具:)无论如何,解决方案是临时使用,并将在以后删除.
更新:
OP在评论中指出了一种快速而合法的方法,因此猴子补丁不再是一种选择.
这是他的代码:
# config/environments/test.rb
ActiveSupport::Deprecation.debug = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4657 次 |
| 最近记录: |