我正在将Rails 2升级到Rails 3应用程序(代码不是由我编写的)。
(经过良好测试的代码)使用should和Test::Unit,并广泛使用宏should_create和should_change。
我从this discussion中了解到,shoulda维护者想摆脱这两种方法,但是使用Test::Unit的人却认为没有必要(尽管不确定我是否掌握了整个讨论)。
Anaway,有没有办法针对指定的宏有选择地关闭弃用警告?我已经从this posting知道,您可以通过以下设置完全关闭Rake测试输出中的弃用警告:
ActiveSupport::Deprecation.silenced = true
在您的测试环境文件中,我也知道您可以将特定的代码段放在一个块中以使其静默:
ActiveSupport::Deprecation.silence do
# no warnings for any use of deprecated methods here
end
后者是一个选项,但是需要我进行所有测试,并将should_create宏包含在这样的块中。因此,我想知道是否有一种方法可以完全通过一个配置设置消除针对特定宏的警告?
最佳答案
旧问题-但是,如果您有新的折旧,则需要有选择地忽略:
ActiveSupport::Deprecation.behavior = lambda do |msg, stack|
unless /LIBRARY_NAME/ =~ msg
ActiveSupport::Deprecation::DEFAULT_BEHAVIORS[:stderr].call(msg,stack) # whichever handlers you want - this is the default
end
end
这是给ActiveSupport 3的。
关于ruby-on-rails - 如何有选择地使Rails 3弃用警告静音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4901306/