ruby-on-rails - 防止 Sidekiq 在测试中打印 "(...) INFO: Sidekiq client with redis options {}"

标签 ruby-on-rails testing logging sidekiq

我使用 Rails 4 默认测试框架并编写了一些测试,这些测试也希望 Sidekiq 在“后台”做一些工作。但是当我运行 rake test 时,我的测试结果看起来像这样:

.............2014-08-01T05:40:52Z 12000 TID-abcdef123 INFO: Sidekiq client with redis options {}
.....................................

Finished in 3.0s, 9.000 runs/s, 150.000 assertions/s.
30 runs, 400 assertions, 0 failures, 0 errors, 0 skips

现在这在测试中看起来不错,但是 Sidekiq worker 的日志真的很烦人。为了防止出现这个日志,我在我的 worker 类里试过这个:

class MyWorker
  include Sidekiq::Worker
  sidekiq_options queue: :my_queue

  def initialize
    Rails.logger.level = 2 # set to :warn level
    super
  end

  def perform(movie_id)
    # Rails.logger.level = 0 # set back to :debug level?

    # some code
  end
end

同时对 Rails.logger.level 行进行了注释和取消注释,但记录的行并没有消失。 如何防止 Sidekiq 在运行 rake test 时记录此信息?

最佳答案

您可以将以下行添加到您的 sidekiq 初始化程序 (config/initializers/sidekiq.rb) 以将其关闭:

if Rails.env.test?
  Sidekiq.logger.level = Logger::WARN
end

关于ruby-on-rails - 防止 Sidekiq 在测试中打印 "(...) INFO: Sidekiq client with redis options {}",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25073676/

相关文章:

logging - 带有 Go 日志包的默认格式的 PANIC

jquery - 为什么这个 if/else 语句导致 div 不显示?

logging - 禁用 undertow 日志记录

c# - log4net 在 dll 中不工作

testing - 测试IP代理的方法

unit-testing - 如何将单元测试项目添加到我现有的 asp.net core 项目中?

java - 如何启用或禁用 Java 控制台

ruby-on-rails - 如何使用 Rspec 测试 Ruby on Rails 中的链式方法

ruby-on-rails - 设计编辑注册无法正常工作

ruby-on-rails - Client_Side_Validation - 显示验证位置 "Password doesn' t 匹配确认"