# frozen_string_literal: true require "bundler/setup" Bundler.require(:default, :test) require "minitest/pride" require "minitest/autorun" $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 "" end end end