ruby-on-rails - 如何有选择地使Rails 3弃用警告静音?

标签 ruby-on-rails unit-testing configuration deprecated shoulda

我正在将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/

相关文章:

unit-testing - 私有(private)/ protected 方法是否应该进行单元测试?

ruby-on-rails - 特定的 Ruby on Rails 路线 deliema

ruby-on-rails - rails 应用程序中的用户定义主题 : how to store the assets

c# - Visual Studio 2015 中的单元测试不运行

java - 如何使用 JavaFX 文件选择器对方法进行单元测试

Elasticsearch 集群发现 - 单播主机

java - Play2 "include"指令覆盖配置并替换

.net - 如何在 VS 2008 项目中将 ConfigurationManager 用于 DEBUG 和 RELEASE 版本

android - 将 Android 应用程序连接到 Rails 服务器

ruby-on-rails - 新页面时不要中断段落( Prawn )