运行 Rails 测试时不要将日志输出到屏幕

lin*_*ndy 4 ruby testing rake ruby-on-rails

我需要为我的 Rails 应用程序运行测试,但似乎当我这样做时rake test:all,我会得到输出到屏幕的所有日志,包括执行的所有查询和调试消息。

有没有办法只显示有多少测试通过/失败以及失败(如果有?)。类似于 Django 测试输出的内容。

lin*_*ndy 5

我自己设法解决了这个问题。

我添加config/environments/test.rb了以下几行:

config.logger = Logger.new(STDOUT)
config.log_level = :error
Run Code Online (Sandbox Code Playgroud)

ActiveRecord::Base.logger如果没有特殊说明则使用上面的配置。要自定义其行为,请设置config.active_record.logger或创建一个config.after_initialize块并ActiveRecord::Base.logger在其中进行设置。

这样,就有一个用于配置测试日志记录级别的集中位置,您可以在其中选择输出所有消息或仅输出其中一些消息。

请注意,执行的查询属于ActiveRecord::Base.logger,并且它们记录在该:info级别上。因此,为了隐藏它们,请将日志级别设置为高于:info.