Sha256: 544a06c617d099ec8027be9cd6622768cc716b5527a5ce8e482c6e1331a1081b
Contents?: true
Size: 985 Bytes
Versions: 8
Compression:
Stored size: 985 Bytes
Contents
module Minitest module Parallel class Executor attr_reader :size def initialize size @size = size @queue = Queue.new @pool = size.times.map { Thread.new(@queue) do |queue| Thread.current.abort_on_exception = true while job = queue.pop klass, method, reporter = job result = Minitest.run_one_method klass, method reporter.synchronize { reporter.record result } end end } end def << work; @queue << work; end def shutdown size.times { @queue << nil } @pool.each(&:join) end end module Test def _synchronize; Test.io_lock.synchronize { yield }; end module ClassMethods def run_one_method klass, method_name, reporter MiniTest.parallel_executor << [klass, method_name, reporter] end def test_order; :parallel; end end end end end
Version data entries
8 entries across 8 versions & 3 rubygems