mperham--sidekiq/test/helper.rb

62 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require "bundler/setup"
Bundler.require(:default, :test)
require "minitest/pride"
require "maxitest/autorun"
# require "maxitest/threads"
$TESTING = true
# disable minitest/parallel threads
ENV["MT_CPU"] = "0"
ENV["N"] = "0"
# Disable any stupid backtrace cleansers
ENV["BACKTRACE"] = "1"
if ENV["COVERAGE"]
require "simplecov"
SimpleCov.start do
enable_coverage :branch
add_filter "/test/"
add_filter "/myapp/"
minimum_coverage 90
end
end
ENV["REDIS_URL"] ||= "redis://localhost/15"
def reset!
RedisClient.new(url: ENV["REDIS_URL"]).call("flushall")
cfg = Sidekiq::Config.new
cfg.logger = ::Logger.new("/dev/null")
cfg.logger.level = Logger::WARN
Sidekiq.instance_variable_set :@config, cfg
cfg
end
def capture_logging(cfg, lvl = Logger::INFO)
old = cfg.logger
begin
out = StringIO.new
logger = ::Logger.new(out)
logger.level = lvl
cfg.logger = logger
yield logger
out.string
ensure
cfg.logger = old
end
end
Signal.trap("TTIN") do
Thread.list.each do |thread|
puts "Thread TID-#{(thread.object_id ^ ::Process.pid).to_s(36)} #{thread.name}"
if thread.backtrace
puts thread.backtrace.join("\n")
else
puts "<no backtrace available>"
end
end
end