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?

È stato utile?

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

https:// GitHub.com / mperham / sidekiq / wiki / logging # Turning-off-logging-in-the-test-environment

è usare

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

Questo potrebbe andare nel tuo spec/rails_helper.rb se si utilizza rspec e rotaie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top