diff --git a/tasks/check_commit.rake b/tasks/check_commit.rake index bc6b42d98886..2e58e9334c2a 100644 --- a/tasks/check_commit.rake +++ b/tasks/check_commit.rake @@ -14,8 +14,12 @@ RuboCop::RakeTask.new(:check_commit, :commit) do |t, args| paths.reject { |p| p.start_with?(/docs|Gemfile|README|CHANGELOG/) } specs = paths.select { |p| p.start_with?('spec') } - puts "Checking: #{paths.join(' ')}" - RuboCop::SpecRunner.new(specs).run_specs + if specs.empty? + puts 'Caution: No spec was changed!' + else + puts "Checking: #{paths.join(' ')}" + RuboCop::SpecRunner.new(specs, parallel: false).run_specs + end t.patterns = paths end diff --git a/tasks/spec_runner.rake b/tasks/spec_runner.rake index 1e14c9789e06..0e1d03841ca6 100644 --- a/tasks/spec_runner.rake +++ b/tasks/spec_runner.rake @@ -13,18 +13,20 @@ module RuboCop class SpecRunner attr_reader :rspec_args - def initialize(rspec_args = %w[spec], external_encoding: 'UTF-8', internal_encoding: nil) + def initialize(rspec_args = %w[spec], parallel: true, + external_encoding: 'UTF-8', internal_encoding: nil) @rspec_args = rspec_args @previous_external_encoding = Encoding.default_external @previous_internal_encoding = Encoding.default_internal @temporary_external_encoding = external_encoding @temporary_internal_encoding = internal_encoding + @parallel = parallel end def run_specs n_failures = with_encoding do - if Process.respond_to?(:fork) + if @parallel && Process.respond_to?(:fork) parallel_runner_klass.new(rspec_args).execute else ::RSpec::Core::Runner.run(rspec_args)