From 25feb287b8a40a536e8fb747a157b64d5420f5d3 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 1 Apr 2019 13:03:51 +0100 Subject: [PATCH] DEV: Add parallel spec support to autospec Set PARALLEL_SPEC=1 to use this functionality --- lib/autospec/simple_runner.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/autospec/simple_runner.rb b/lib/autospec/simple_runner.rb index 24150c96f54..f0606838942 100644 --- a/lib/autospec/simple_runner.rb +++ b/lib/autospec/simple_runner.rb @@ -15,7 +15,17 @@ module Autospec end # we use our custom rspec formatter args = ["-r", "#{File.dirname(__FILE__)}/formatter.rb", - "-f", "Autospec::Formatter", specs.split].flatten.join(" ") + "-f", "Autospec::Formatter"] + + command = begin + if ENV["PARALLEL_SPEC"] && + !specs.split.any? { |s| puts s; s =~ /\:/ } # Parallel spec can't run specific groups + "parallel_rspec -- #{args.join(" ")} -- #{specs.split.join(" ")}" + else + "bin/rspec #{args.join(" ")} #{specs.split.join(" ")}" + end + end + # launch rspec Dir.chdir(Rails.root) do env = { "RAILS_ENV" => "test" } @@ -25,7 +35,7 @@ module Autospec end pid = @mutex.synchronize do - @pid = Process.spawn(env, "bin/rspec #{args}") + @pid = Process.spawn(env, command) end _, status = Process.wait2(pid)