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',