From b5d8fb283b839666f19e266a89e17bed9dd32602 Mon Sep 17 00:00:00 2001 From: Peter Souter Date: Wed, 16 Mar 2016 23:57:44 +0000 Subject: [PATCH] Adds parallel_tests rake task Also moves parallel_tests out of development group so it's installed on travis Comparison on an 8 core Mac: ``` $ bundle exec rake parallel_spec 746 examples, 0 failures, 10 pendings Took 66 seconds (1:06) ``` Vs. ``` $ bundle exec rake spec Finished in 3 minutes 4.8 seconds (files took 2.14 seconds to load) 746 examples, 0 failures, 10 pending ``` --- .rspec_parallel | 3 +++ Gemfile | 2 +- Rakefile | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .rspec_parallel diff --git a/.rspec_parallel b/.rspec_parallel new file mode 100644 index 000000000..83354071a --- /dev/null +++ b/.rspec_parallel @@ -0,0 +1,3 @@ +--format progress +--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log +--order random diff --git a/Gemfile b/Gemfile index 8e88d5684..fd9f001b7 100644 --- a/Gemfile +++ b/Gemfile @@ -11,10 +11,10 @@ gem 'puppet', ENV['PUPPET_VERSION'] || '~> 3.5' gem 'metadata-json-lint' gem 'retries', '~> 0.0.5' gem 'travis', '~> 1.8' +gem 'parallel_tests' group :development do gem 'simplecov' - gem 'parallel_tests' gem 'ci_reporter' gem 'debugger', :platform => :mri_19 gem 'debugger-pry', :platform => :mri_19 diff --git a/Rakefile b/Rakefile index 8b134759e..7d7c98d97 100644 --- a/Rakefile +++ b/Rakefile @@ -3,6 +3,8 @@ require 'rake' require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-lint/tasks/puppet-lint' require 'puppet-syntax/tasks/puppet-syntax' +require 'parallel_tests' +require 'parallel_tests/cli' exclude_paths = [ "pkg/**/*", @@ -44,6 +46,12 @@ namespace :travis do end end +desc "Parallel spec tests" +task :parallel_spec do + Rake::Task[:spec_prep].invoke + ParallelTests::CLI.new.run('--type test -t rspec spec/classes spec/defines spec/unit spec/functions'.split) + Rake::Task[:spec_clean].invoke +end task :default => [ 'travis:lint',