Evitar que Sidekiq imprima “(…) INFORMACIÓN:Cliente Sidekiq con opciones de redis {}” en pruebas

StackOverflow https://stackoverflow.com//questions/25073676

Pregunta

Utilizo el marco de pruebas predeterminado de Rails 4 y he escrito algunas pruebas que también esperan que Sidekiq trabaje en segundo plano.Pero cuando corro rake test Los resultados de mi prueba se ven así:

.............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

Esto se ve bien con las pruebas, pero el registro del trabajador de Sidekiq es realmente molesto.Para evitar que ocurra este registro, probé esto en mi clase de trabajador:

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

Con tanto el Rails.logger.level línea comentada y descomentada, pero la línea registrada no desapareció. ¿Cómo puedo evitar que Sidekiq registre esto cuando lo ejecuto? rake test?

¿Fue útil?

Solución

Puede agregar la siguiente línea a su inicializador sidekiq (config/initializers/sidekiq.rb) para apagarlo:

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

Otros consejos

La recomendación oficial de

https://github.com/mperham/sidekiq/wiki/Logging#turning-off-logging-in-the-test-environment

es usar

require 'sidekiq/testing'
Sidekiq::Logging.logger = nil

Esto podría ir en tu spec/rails_helper.rb si usa rspec y rieles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top