diff --git a/lib/autospec/formatter.rb b/lib/autospec/formatter.rb index a5fe09acbec..1ecd3c824f5 100644 --- a/lib/autospec/formatter.rb +++ b/lib/autospec/formatter.rb @@ -1,4 +1,5 @@ require "rspec/core/formatters/base_text_formatter" +require "parallel_tests/rspec/logger_base" module Autospec; end @@ -43,3 +44,18 @@ class Autospec::Formatter < RSpec::Core::Formatters::BaseTextFormatter end end + +class Autospec::ParallelFormatter < ParallelTests::RSpec::LoggerBase + RSpec::Core::Formatters.register self, :example_failed + + def message(*args);end + def dump_failures(*args);end + def dump_summary(*args);end + def dump_pending(*args);end + def seed(*args);end + + def example_failed(notification) + output.puts notification.example.metadata[:location] + " " + end +end + diff --git a/lib/autospec/simple_runner.rb b/lib/autospec/simple_runner.rb index f0606838942..f8001b9621e 100644 --- a/lib/autospec/simple_runner.rb +++ b/lib/autospec/simple_runner.rb @@ -14,14 +14,18 @@ module Autospec self.abort end # we use our custom rspec formatter - args = ["-r", "#{File.dirname(__FILE__)}/formatter.rb", - "-f", "Autospec::Formatter"] + args = ["-r", "#{File.dirname(__FILE__)}/formatter.rb"] command = begin if ENV["PARALLEL_SPEC"] && !specs.split.any? { |s| puts s; s =~ /\:/ } # Parallel spec can't run specific groups + + args += ["-f", "progress", "-f", "Autospec::ParallelFormatter", "-o", "./tmp/rspec_result"] + args += ["-f", "ParallelTests::RSpec::RuntimeLogger", "-o", "./tmp/parallel_runtime_rspec.log"] if specs == "spec" + "parallel_rspec -- #{args.join(" ")} -- #{specs.split.join(" ")}" else + args += ["-f", "Autospec::Formatter"] "bin/rspec #{args.join(" ")} #{specs.split.join(" ")}" end end