Permalink
Fetching contributors…
Cannot retrieve contributors at this time
26 lines (25 sloc) 592 Bytes
class MultiThreadedExampleGroupRunner < Spec::Runner::ExampleGroupRunner
def initialize(options, arg)
super(options)
# configure these
@thread_count = 4
@thread_wait = 0
end
def run
@threads = []
q = Queue.new
example_groups.each { |b| q << b}
success = true
@thread_count.times do
@threads << Thread.new(q) do |queue|
while not queue.empty?
example_group = queue.pop
success &= example_group.suite.run(nil)
end
end
sleep @thread_wait
end
@threads.each {|t| t.join}
success
end
end