Impedire la stampa SIDEKIQ "(...) Info: Client Sidekiq con Opzioni Redis {}" Su Test
-
26-12-2019 - |
Domanda
Io uso i binari 4 Quadro di test predefinito e hanno scritto alcuni test che si aspettano anche Sidekiq per fare un po 'di lavoro nello "sfondo".Ma quando corri rake test
i miei risultati del test sembrano qualcosa del genere:
.............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
.
Ora questo sembra bene con i test ma il registro del lavoratore Sidekiq è davvero fastidioso.Per evitare che questo ceppo possa accadendo, ho provato questo nella mia classe di lavoratori:
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 entrambe la linea Rails.logger.level
ha commentato e non compmentato, ma la linea loggata non è scomparsa. Come posso impedire a SidekiQ di averlo registrato quando viene eseguito con rake test
?
Soluzione
È possibile aggiungere la seguente riga all'inizializzazione SIDEKIQ (config/initializers/sidekiq.rb
) per spegnerlo:
if Rails.env.test?
Sidekiq.logger.level = Logger::WARN
end
. Altri suggerimenti
La raccomandazione ufficiale di
è usare
require 'sidekiq/testing'
Sidekiq::Logging.logger = nil
.
Questo potrebbe andare nel tuo spec/rails_helper.rb
se si utilizza rspec e rotaie.