DEV: Add parallel spec support to autospec

Set PARALLEL_SPEC=1 to use this functionality
This commit is contained in:
David Taylor 2019-04-01 13:03:51 +01:00 committed by Robin Ward
parent b375dcb14a
commit 25feb287b8

View File

@ -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)