From 70638eb9e24bb78ee9b84625cc704890ca0bbde3 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 17:31:10 -0500 Subject: [PATCH 01/33] Add Appraisals, test multiple Zeus and Rails versions, enable 0.15.4 --- .gitignore | 1 + Appraisals | 19 +++++++++++++++++++ gemfiles/rails_3_zeus_0.13.gemfile | 8 ++++++++ gemfiles/rails_3_zeus_0.15.gemfile | 8 ++++++++ gemfiles/rails_4_zeus_0.13.gemfile | 8 ++++++++ gemfiles/rails_4_zeus_0.15.gemfile | 8 ++++++++ spec/dummy/Gemfile | 30 ------------------------------ spec/dummy/custom_plan.rb | 2 +- zeus-parallel_tests.gemspec | 11 ++++++++++- 9 files changed, 63 insertions(+), 32 deletions(-) create mode 100644 Appraisals create mode 100644 gemfiles/rails_3_zeus_0.13.gemfile create mode 100644 gemfiles/rails_3_zeus_0.15.gemfile create mode 100644 gemfiles/rails_4_zeus_0.13.gemfile create mode 100644 gemfiles/rails_4_zeus_0.15.gemfile delete mode 100644 spec/dummy/Gemfile diff --git a/.gitignore b/.gitignore index d87d4be..cf6c53b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .config .yardoc Gemfile.lock +gemfiles/*.gemfile.lock InstalledFiles _yardoc coverage diff --git a/Appraisals b/Appraisals new file mode 100644 index 0000000..49c58d7 --- /dev/null +++ b/Appraisals @@ -0,0 +1,19 @@ +appraise 'rails-3-zeus-0.13' do + gem 'rails', '3.2.21' + gem 'zeus', '0.13.3' +end + +appraise 'rails-3-zeus-0.15' do + gem 'rails', '3.2.21' + gem 'zeus', '0.15.4' +end + +appraise 'rails-4-zeus-0.13' do + gem 'rails', '4.2.3' + gem 'zeus', '0.13.3' +end + +appraise 'rails-4-zeus-0.15' do + gem 'rails', '4.2.3' + gem 'zeus', '0.15.4' +end diff --git a/gemfiles/rails_3_zeus_0.13.gemfile b/gemfiles/rails_3_zeus_0.13.gemfile new file mode 100644 index 0000000..87a137c --- /dev/null +++ b/gemfiles/rails_3_zeus_0.13.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "3.2.21" +gem "zeus", "0.13.3" + +gemspec :path => "../" diff --git a/gemfiles/rails_3_zeus_0.15.gemfile b/gemfiles/rails_3_zeus_0.15.gemfile new file mode 100644 index 0000000..5cf710a --- /dev/null +++ b/gemfiles/rails_3_zeus_0.15.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "3.2.21" +gem "zeus", "0.15.4" + +gemspec :path => "../" diff --git a/gemfiles/rails_4_zeus_0.13.gemfile b/gemfiles/rails_4_zeus_0.13.gemfile new file mode 100644 index 0000000..42da9b5 --- /dev/null +++ b/gemfiles/rails_4_zeus_0.13.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "4.2.3" +gem "zeus", "0.13.3" + +gemspec :path => "../" diff --git a/gemfiles/rails_4_zeus_0.15.gemfile b/gemfiles/rails_4_zeus_0.15.gemfile new file mode 100644 index 0000000..7729cc2 --- /dev/null +++ b/gemfiles/rails_4_zeus_0.15.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "4.2.3" +gem "zeus", "0.15.4" + +gemspec :path => "../" diff --git a/spec/dummy/Gemfile b/spec/dummy/Gemfile deleted file mode 100644 index ca38d25..0000000 --- a/spec/dummy/Gemfile +++ /dev/null @@ -1,30 +0,0 @@ -source 'https://rubygems.org' - -gem 'rails', '3.2.13' - -# Bundle edge Rails instead: -# gem 'rails', :git => 'git://github.com/rails/rails.git' - -gem 'sqlite3' - -gem 'rspec-rails' -gem 'cucumber-rails', require: false -gem 'zeus-parallel_tests', path: '../../../zeus-parallel_tests' -gem 'database_cleaner' -gem 'turn', require: false -gem 'guard-rspec' - -# To use ActiveModel has_secure_password -# gem 'bcrypt-ruby', '~> 3.0.0' - -# To use Jbuilder templates for JSON -# gem 'jbuilder' - -# Use unicorn as the app server -# gem 'unicorn' - -# Deploy with Capistrano -# gem 'capistrano' - -# To use debugger -# gem 'debugger' diff --git a/spec/dummy/custom_plan.rb b/spec/dummy/custom_plan.rb index 41afd2b..f1f102f 100644 --- a/spec/dummy/custom_plan.rb +++ b/spec/dummy/custom_plan.rb @@ -1,4 +1,4 @@ -require 'zeus/parallel_tests' +require '../../lib/zeus/parallel_tests' class CustomPlan < Zeus::ParallelTests::Rails # Your custom methods go here diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index ff0f4e4..5e6db09 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -18,11 +18,20 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ['lib'] - spec.add_dependency 'zeus', '~> 0.13.3' + spec.add_dependency 'zeus', '>= 0.13.0' spec.add_dependency 'parallel_tests', '>= 0.11.3' + spec.add_development_dependency 'appraisal' spec.add_development_dependency 'bundler' + spec.add_development_dependency 'byebug' spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec', '>= 3.0' + + # Gems used by dummy app in testing. + spec.add_development_dependency 'cucumber-rails' + spec.add_development_dependency 'database_cleaner' + spec.add_development_dependency 'guard-rspec' + spec.add_development_dependency 'rspec-rails' + spec.add_development_dependency 'sqlite3' end From dc87d5be59d28e1de2e678d34a97c90a6e56f798 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 17:36:14 -0500 Subject: [PATCH 02/33] Updates to slow spec --- spec/slow/parallel_rspec_spec.rb | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/spec/slow/parallel_rspec_spec.rb b/spec/slow/parallel_rspec_spec.rb index a3f0360..c03fd7a 100644 --- a/spec/slow/parallel_rspec_spec.rb +++ b/spec/slow/parallel_rspec_spec.rb @@ -4,39 +4,23 @@ require 'open3' describe 'zeus parallel_rspec spec' do - def build_gem(_version = Zeus::ParallelTests::VERSION) - system 'gem build zeus-parallel_tests.gemspec &>/dev/null' - end - - def install_gem(version = Zeus::ParallelTests::VERSION) - system "gem install ./zeus-parallel_tests-#{version}.gem --ignore-dependencies &>/dev/null" - end - - def uninstall_gem(version = Zeus::ParallelTests::VERSION) - system "echo y | gem uninstall zeus-parallel_tests -v #{version} --quiet &>/dev/null" - end - def launch_server pid = fork do - Dir.chdir 'spec/dummy/' - system 'bundle install' - exec 'bundle exec zeus start &>/dev/null' + Dir.chdir 'spec/dummy/' do + exec 'bundle exec zeus --log zeus.log start &>/dev/null' + end end sleep 3 pid end before(:all) do - build_gem - install_gem - print 'Launch zeus server for dummy app in separate console and press ENTER ' - $stdin.getc - # @server_pid = launch_server.to_i + @server_pid = launch_server Dir.chdir 'spec/dummy/' end it 'connects to server' do - expect(system('zeus r true &>/dev/null')).to be_true + expect(system('zeus r true &>/dev/null')).to be_truthy end it 'runs specs in two processes' do @@ -46,8 +30,7 @@ def launch_server end after(:all) do - # system "kill -9 #{@server_pid.to_s}" - # system "rm -fr .zeus.sock" - uninstall_gem + system('kill', '-9', @server_pid) + system('rm', '-f', '.zeus.sock') end end From f6d872ed645bc1de0ff18563af1afc7f89fb52d8 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:21:45 -0500 Subject: [PATCH 03/33] Update circle command to use Appraisal --- circle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index 538a563..0978ac0 100644 --- a/circle.yml +++ b/circle.yml @@ -16,7 +16,7 @@ dependencies: test: override: - - rvm-exec 2.2 bash -c 'bundle exec rake circle:spec' - - rvm-exec 2.1 bash -c 'bundle exec rake circle:spec' - - rvm-exec 2.0 bash -c 'bundle exec rake circle:spec' - - rvm-exec 1.9 bash -c 'bundle exec rake circle:spec' + - rvm-exec 2.2 bash -c 'bundle exec appraisal rake circle:spec' + - rvm-exec 2.1 bash -c 'bundle exec appraisal rake circle:spec' + - rvm-exec 2.0 bash -c 'bundle exec appraisal rake circle:spec' + - rvm-exec 1.9 bash -c 'bundle exec appraisal rake circle:spec' From d83834e47023c300ab88c7b6aff1a28f95c2d68f Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:23:04 -0500 Subject: [PATCH 04/33] Suppress rvm auto update warnings --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 0978ac0..a8568ba 100644 --- a/circle.yml +++ b/circle.yml @@ -1,5 +1,6 @@ dependencies: pre: + - echo rvm_autoupdate_flag=0 >> ~/.rvmrc - rvm install 2.2 - rvm install 2.1 - rvm install 2.0 From 410e4ee50b2001e3e03e5d6b4bc59b83cc4ace58 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:26:47 -0500 Subject: [PATCH 05/33] Remove byebug as dependency; better caching --- circle.yml | 5 ++++- zeus-parallel_tests.gemspec | 1 - 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index a8568ba..3fb92a9 100644 --- a/circle.yml +++ b/circle.yml @@ -7,7 +7,10 @@ dependencies: - rvm install 1.9 cache_directories: - - '~/.rvm/gems/' + - /home/ubuntu/.rvm/gems/ruby-2.2.1-p598@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.1.5-p598@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.0.0-p643@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: - rvm-exec 2.2 bash -c 'bundle check || bundle install' diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index 5e6db09..cc52605 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -23,7 +23,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'appraisal' spec.add_development_dependency 'bundler' - spec.add_development_dependency 'byebug' spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec', '>= 3.0' From ff8a03aea960bbdc338ce38cac7289a9fd20fc43 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:37:16 -0500 Subject: [PATCH 06/33] Switch to appraisal install --- circle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index 3fb92a9..38b17b6 100644 --- a/circle.yml +++ b/circle.yml @@ -13,10 +13,10 @@ dependencies: - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: - - rvm-exec 2.2 bash -c 'bundle check || bundle install' - - rvm-exec 2.1 bash -c 'bundle check || bundle install' - - rvm-exec 2.0 bash -c 'bundle check || bundle install' - - rvm-exec 1.9 bash -c 'bundle check || bundle install' + - rvm-exec 2.2 bash -c 'appraisal install' + - rvm-exec 2.1 bash -c 'appraisal install' + - rvm-exec 2.0 bash -c 'appraisal install' + - rvm-exec 1.9 bash -c 'appraisal install' test: override: From 5ce5adf89e2081d35b0e7bc20c6bedc000a4a6d7 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:39:47 -0500 Subject: [PATCH 07/33] Install Appraisal first --- circle.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/circle.yml b/circle.yml index 38b17b6..b800a79 100644 --- a/circle.yml +++ b/circle.yml @@ -13,9 +13,13 @@ dependencies: - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: + - rvm-exec 2.2 bash -c 'gem install appraisal' - rvm-exec 2.2 bash -c 'appraisal install' + - rvm-exec 2.1 bash -c 'gem install appraisal' - rvm-exec 2.1 bash -c 'appraisal install' + - rvm-exec 2.0 bash -c 'gem install appraisal' - rvm-exec 2.0 bash -c 'appraisal install' + - rvm-exec 1.9 bash -c 'gem install appraisal' - rvm-exec 1.9 bash -c 'appraisal install' test: From 36acdcbe45ec14ef2cca0961ca2be69ad6c5edc7 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 18:57:29 -0500 Subject: [PATCH 08/33] Install bundler and appraisal --- circle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index b800a79..726ad73 100644 --- a/circle.yml +++ b/circle.yml @@ -13,13 +13,13 @@ dependencies: - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: - - rvm-exec 2.2 bash -c 'gem install appraisal' + - rvm-exec 2.2 bash -c 'gem install bundler appraisal' - rvm-exec 2.2 bash -c 'appraisal install' - - rvm-exec 2.1 bash -c 'gem install appraisal' + - rvm-exec 2.1 bash -c 'gem install bundler appraisal' - rvm-exec 2.1 bash -c 'appraisal install' - - rvm-exec 2.0 bash -c 'gem install appraisal' + - rvm-exec 2.0 bash -c 'gem install bundler appraisal' - rvm-exec 2.0 bash -c 'appraisal install' - - rvm-exec 1.9 bash -c 'gem install appraisal' + - rvm-exec 1.9 bash -c 'gem install bundler appraisal' - rvm-exec 1.9 bash -c 'appraisal install' test: From 72ea9ef5e1be34f177cc2194bfeba81a6ecbb6cf Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 19:04:32 -0500 Subject: [PATCH 09/33] Spell out appraisal gemfiles --- circle.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/circle.yml b/circle.yml index 726ad73..027b6ce 100644 --- a/circle.yml +++ b/circle.yml @@ -13,14 +13,22 @@ dependencies: - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: - - rvm-exec 2.2 bash -c 'gem install bundler appraisal' - - rvm-exec 2.2 bash -c 'appraisal install' - - rvm-exec 2.1 bash -c 'gem install bundler appraisal' - - rvm-exec 2.1 bash -c 'appraisal install' - - rvm-exec 2.0 bash -c 'gem install bundler appraisal' - - rvm-exec 2.0 bash -c 'appraisal install' - - rvm-exec 1.9 bash -c 'gem install bundler appraisal' - - rvm-exec 1.9 bash -c 'appraisal install' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' test: override: From fdf2c2b660ee7bd1106463e8ce1990cbd49ff7a8 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 19:10:32 -0500 Subject: [PATCH 10/33] Progress * zeus will start but does not load zeus.json --- spec/dummy/config/application.rb | 6 ------ spec/dummy/config/environments/development.rb | 7 ------- spec/dummy/config/environments/production.rb | 4 ---- spec/dummy/config/environments/test.rb | 3 --- spec/dummy/custom_plan.rb | 2 +- spec/dummy/zeus.json | 2 +- spec/slow/parallel_rspec_spec.rb | 17 +++++++++++------ spec/spec_helper.rb | 8 ++------ 8 files changed, 15 insertions(+), 34 deletions(-) diff --git a/spec/dummy/config/application.rb b/spec/dummy/config/application.rb index 86682a2..f3e419f 100644 --- a/spec/dummy/config/application.rb +++ b/spec/dummy/config/application.rb @@ -54,11 +54,5 @@ class Application < Rails::Application # This is necessary if your schema can't be completely dumped by the schema dumper, # like if you have constraints or database-specific column types # config.active_record.schema_format = :sql - - # Enforce whitelist mode for mass assignment. - # This will create an empty whitelist of attributes available for mass-assignment for all models - # in your app. As such, your models will need to explicitly whitelist or blacklist accessible - # parameters by using an attr_accessible or attr_protected declaration. - config.active_record.whitelist_attributes = true end end diff --git a/spec/dummy/config/environments/development.rb b/spec/dummy/config/environments/development.rb index 7a6cd73..68c9d89 100644 --- a/spec/dummy/config/environments/development.rb +++ b/spec/dummy/config/environments/development.rb @@ -21,11 +21,4 @@ # Only use best-standards-support built into browsers config.action_dispatch.best_standards_support = :builtin - - # Raise exception on mass assignment protection for Active Record models - config.active_record.mass_assignment_sanitizer = :strict - - # Log the query plan for queries taking more than this (works - # with SQLite, MySQL, and PostgreSQL) - config.active_record.auto_explain_threshold_in_seconds = 0.5 end diff --git a/spec/dummy/config/environments/production.rb b/spec/dummy/config/environments/production.rb index 053eea1..d77396c 100644 --- a/spec/dummy/config/environments/production.rb +++ b/spec/dummy/config/environments/production.rb @@ -45,8 +45,4 @@ # Send deprecation notices to registered listeners config.active_support.deprecation = :notify - - # Log the query plan for queries taking more than this (works - # with SQLite, MySQL, and PostgreSQL) - # config.active_record.auto_explain_threshold_in_seconds = 0.5 end diff --git a/spec/dummy/config/environments/test.rb b/spec/dummy/config/environments/test.rb index d2944e6..f7d264b 100644 --- a/spec/dummy/config/environments/test.rb +++ b/spec/dummy/config/environments/test.rb @@ -29,9 +29,6 @@ # ActionMailer::Base.deliveries array. config.action_mailer.delivery_method = :test - # Raise exception on mass assignment protection for Active Record models - config.active_record.mass_assignment_sanitizer = :strict - # Print deprecation notices to the stderr config.active_support.deprecation = :stderr end diff --git a/spec/dummy/custom_plan.rb b/spec/dummy/custom_plan.rb index f1f102f..85b188c 100644 --- a/spec/dummy/custom_plan.rb +++ b/spec/dummy/custom_plan.rb @@ -1,4 +1,4 @@ -require '../../lib/zeus/parallel_tests' +require './lib/zeus/parallel_tests' class CustomPlan < Zeus::ParallelTests::Rails # Your custom methods go here diff --git a/spec/dummy/zeus.json b/spec/dummy/zeus.json index e23854e..76eb24c 100644 --- a/spec/dummy/zeus.json +++ b/spec/dummy/zeus.json @@ -1,5 +1,5 @@ { - "command": "ruby -rubygems -r./custom_plan -eZeus.go", + "command": "ruby -rubygems -r./spec/dummy/custom_plan -eZeus.go", "plan": { "boot": { diff --git a/spec/slow/parallel_rspec_spec.rb b/spec/slow/parallel_rspec_spec.rb index c03fd7a..cd79d48 100644 --- a/spec/slow/parallel_rspec_spec.rb +++ b/spec/slow/parallel_rspec_spec.rb @@ -7,7 +7,7 @@ def launch_server pid = fork do Dir.chdir 'spec/dummy/' do - exec 'bundle exec zeus --log zeus.log start &>/dev/null' + exec 'bundle exec zeus start &>/dev/null' end end sleep 3 @@ -15,17 +15,22 @@ def launch_server end before(:all) do - @server_pid = launch_server - Dir.chdir 'spec/dummy/' + @server_pid = launch_server.to_s end it 'connects to server' do - expect(system('zeus r true &>/dev/null')).to be_truthy + Dir.chdir 'spec/dummy/' do + Open3.popen2e('bundle', 'exec', 'zeus', 'r', 'true') do |_, output| + expect(output).to be_truthy + end + end end it 'runs specs in two processes' do - Open3.popen2e('zeus', 'parallel_rspec', '-n', '2', 'spec') do |_input, output, _t| - expect(output.to_a.map(&:chomp)).to include('2 processes for 2 specs, ~ 1 specs per process') + Dir.chdir 'spec/dummy/' do + Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_rspec', '-n', '2', 'spec') do |_, output| + expect(output.to_a.map(&:chomp)).to include('2 processes for 2 specs, ~ 1 specs per process') + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 97a9f2c..c4f6902 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,5 @@ -# This file was generated by the `rspec --init` command. Conventionally, all -# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. -# Require this file using `require "spec_helper"` to ensure that it is only -# loaded once. -# -# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +require 'rspec' + RSpec.configure do |config| # Run specs in random order to surface order dependencies. If you find an # order dependency and want to debug it, you can fix the order by providing From acb6c408f481a80a3cd50af25f84f89529bfdba4 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 19:17:53 -0500 Subject: [PATCH 11/33] Fix check paths --- circle.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/circle.yml b/circle.yml index 027b6ce..a927a92 100644 --- a/circle.yml +++ b/circle.yml @@ -14,21 +14,21 @@ dependencies: override: - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' test: override: From 78678fd61eded5bfa659453b1b8676db8242c54c Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 19:52:39 -0500 Subject: [PATCH 12/33] Fix gem caching in Circle --- circle.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index a927a92..d5bdcf0 100644 --- a/circle.yml +++ b/circle.yml @@ -7,10 +7,10 @@ dependencies: - rvm install 1.9 cache_directories: - - /home/ubuntu/.rvm/gems/ruby-2.2.1-p598@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-2.1.5-p598@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-2.0.0-p643@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.2.0/gems/ + - /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/ + - /home/ubuntu/.rvm/gems/ruby-2.0.0-p598/gems/ + - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551/gems/ override: - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' From 16b60c8a137b3302b4175cb441ce6d5f5868cabc Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 23:37:05 -0500 Subject: [PATCH 13/33] Move to Zeus 0.15.x branch, fix some slow tests --- Appraisals | 10 ---------- README.md | 6 +++++- Rakefile | 13 +------------ circle.yml | 8 ++++---- spec/{slow => }/parallel_rspec_spec.rb | 6 +++--- zeus-parallel_tests.gemspec | 2 +- 6 files changed, 14 insertions(+), 31 deletions(-) rename spec/{slow => }/parallel_rspec_spec.rb (87%) diff --git a/Appraisals b/Appraisals index 49c58d7..3294b0a 100644 --- a/Appraisals +++ b/Appraisals @@ -1,18 +1,8 @@ -appraise 'rails-3-zeus-0.13' do - gem 'rails', '3.2.21' - gem 'zeus', '0.13.3' -end - appraise 'rails-3-zeus-0.15' do gem 'rails', '3.2.21' gem 'zeus', '0.15.4' end -appraise 'rails-4-zeus-0.13' do - gem 'rails', '4.2.3' - gem 'zeus', '0.13.3' -end - appraise 'rails-4-zeus-0.15' do gem 'rails', '4.2.3' gem 'zeus', '0.15.4' diff --git a/README.md b/README.md index 31b53da..749d989 100644 --- a/README.md +++ b/README.md @@ -67,10 +67,14 @@ Ready to go? [RailsCast episode #413 Fast Tests](http://railscasts.com/episodes/413-fast-tests) -Add this line to your application's Gemfile: +Got Zeus 0.15.x? Add this line to your application's Gemfile: gem 'zeus-parallel_tests' +Need Zeus 0.13.x? Use the 0.2.x branch: + + gem 'zeus-parallel_tests', '0.2.5' + And then execute: $ bundle diff --git a/Rakefile b/Rakefile index 2d6e01b..e026ef2 100644 --- a/Rakefile +++ b/Rakefile @@ -3,15 +3,4 @@ require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) -task default: :spec -namespace :circle do - RSpec::Core::RakeTask.new(:spec) do |task| - file_list = FileList['spec/**/*_spec.rb'] - - %w(slow).each do |exclude| - file_list = file_list.exclude("spec/#{exclude}/**/*_spec.rb") - end - - task.pattern = file_list - end -end +task default: :spec \ No newline at end of file diff --git a/circle.yml b/circle.yml index d5bdcf0..111a916 100644 --- a/circle.yml +++ b/circle.yml @@ -32,7 +32,7 @@ dependencies: test: override: - - rvm-exec 2.2 bash -c 'bundle exec appraisal rake circle:spec' - - rvm-exec 2.1 bash -c 'bundle exec appraisal rake circle:spec' - - rvm-exec 2.0 bash -c 'bundle exec appraisal rake circle:spec' - - rvm-exec 1.9 bash -c 'bundle exec appraisal rake circle:spec' + - rvm-exec 2.2 bash -c 'bundle exec appraisal rspec' + - rvm-exec 2.1 bash -c 'bundle exec appraisal rspec' + - rvm-exec 2.0 bash -c 'bundle exec appraisal rspec' + - rvm-exec 1.9 bash -c 'bundle exec appraisal rspec' diff --git a/spec/slow/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb similarity index 87% rename from spec/slow/parallel_rspec_spec.rb rename to spec/parallel_rspec_spec.rb index cd79d48..ea3fa60 100644 --- a/spec/slow/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -20,13 +20,13 @@ def launch_server it 'connects to server' do Dir.chdir 'spec/dummy/' do - Open3.popen2e('bundle', 'exec', 'zeus', 'r', 'true') do |_, output| - expect(output).to be_truthy - end + system('bundle', 'exec', 'zeus', 'r', 'true') + expect($?.exitstatus).to eq(0) end end it 'runs specs in two processes' do + pending Dir.chdir 'spec/dummy/' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_rspec', '-n', '2', 'spec') do |_, output| expect(output.to_a.map(&:chomp)).to include('2 processes for 2 specs, ~ 1 specs per process') diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index cc52605..d6c89be 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ['lib'] - spec.add_dependency 'zeus', '>= 0.13.0' + spec.add_dependency 'zeus', '~> 0.15.4' spec.add_dependency 'parallel_tests', '>= 0.11.3' spec.add_development_dependency 'appraisal' From 325365bd57127ab0bc9ca63079e00cb225b78480 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Thu, 16 Jul 2015 23:39:50 -0500 Subject: [PATCH 14/33] Remove outdated gemfile checks --- circle.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/circle.yml b/circle.yml index 111a916..e584d3c 100644 --- a/circle.yml +++ b/circle.yml @@ -13,20 +13,12 @@ dependencies: - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551/gems/ override: - - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' From 53649f932ef7565b35d1024d2abf18264360c11f Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 20:04:03 -0500 Subject: [PATCH 15/33] Fix all tests :tada: --- .gitignore | 2 ++ .rspec | 3 ++- gemfiles/rails_3_zeus_0.13.gemfile | 8 -------- gemfiles/rails_4_zeus_0.13.gemfile | 8 -------- spec/dummy/custom_plan.rb | 2 +- spec/dummy/spec/unit_test_a_spec.rb | 7 +++++++ spec/dummy/spec/unit_test_b_spec.rb | 7 +++++++ spec/dummy/zeus.json | 2 +- spec/parallel_rspec_spec.rb | 12 +++++++++--- zeus-parallel_tests.gemspec | 1 + 10 files changed, 30 insertions(+), 22 deletions(-) delete mode 100644 gemfiles/rails_3_zeus_0.13.gemfile delete mode 100644 gemfiles/rails_4_zeus_0.13.gemfile create mode 100644 spec/dummy/spec/unit_test_a_spec.rb create mode 100644 spec/dummy/spec/unit_test_b_spec.rb diff --git a/.gitignore b/.gitignore index cf6c53b..6a3ed78 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,8 @@ doc/ lib/bundler/man pkg rdoc +spec/dummy/Gemfile +spec/dummy/vendor spec/reports test/tmp test/version_tmp diff --git a/.rspec b/.rspec index 97c5f28..4061ad4 100644 --- a/.rspec +++ b/.rspec @@ -1,3 +1,4 @@ --color --format progress ---require spec_helper \ No newline at end of file +--require spec_helper +--exclude-pattern 'spec/dummy/**/*' \ No newline at end of file diff --git a/gemfiles/rails_3_zeus_0.13.gemfile b/gemfiles/rails_3_zeus_0.13.gemfile deleted file mode 100644 index 87a137c..0000000 --- a/gemfiles/rails_3_zeus_0.13.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "3.2.21" -gem "zeus", "0.13.3" - -gemspec :path => "../" diff --git a/gemfiles/rails_4_zeus_0.13.gemfile b/gemfiles/rails_4_zeus_0.13.gemfile deleted file mode 100644 index 42da9b5..0000000 --- a/gemfiles/rails_4_zeus_0.13.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -# This file was generated by Appraisal - -source "https://rubygems.org" - -gem "rails", "4.2.3" -gem "zeus", "0.13.3" - -gemspec :path => "../" diff --git a/spec/dummy/custom_plan.rb b/spec/dummy/custom_plan.rb index 85b188c..41afd2b 100644 --- a/spec/dummy/custom_plan.rb +++ b/spec/dummy/custom_plan.rb @@ -1,4 +1,4 @@ -require './lib/zeus/parallel_tests' +require 'zeus/parallel_tests' class CustomPlan < Zeus::ParallelTests::Rails # Your custom methods go here diff --git a/spec/dummy/spec/unit_test_a_spec.rb b/spec/dummy/spec/unit_test_a_spec.rb new file mode 100644 index 0000000..1bd5594 --- /dev/null +++ b/spec/dummy/spec/unit_test_a_spec.rb @@ -0,0 +1,7 @@ +require 'spec_helper' + +describe "Unit A" do + it "should be true" do + expect(true).to be true + end +end \ No newline at end of file diff --git a/spec/dummy/spec/unit_test_b_spec.rb b/spec/dummy/spec/unit_test_b_spec.rb new file mode 100644 index 0000000..77a668a --- /dev/null +++ b/spec/dummy/spec/unit_test_b_spec.rb @@ -0,0 +1,7 @@ +require 'spec_helper' + +describe "Unit B" do + it "should be true" do + expect(true).to be true + end +end \ No newline at end of file diff --git a/spec/dummy/zeus.json b/spec/dummy/zeus.json index 76eb24c..e23854e 100644 --- a/spec/dummy/zeus.json +++ b/spec/dummy/zeus.json @@ -1,5 +1,5 @@ { - "command": "ruby -rubygems -r./spec/dummy/custom_plan -eZeus.go", + "command": "ruby -rubygems -r./custom_plan -eZeus.go", "plan": { "boot": { diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index ea3fa60..aac46a0 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -1,5 +1,6 @@ $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__) +require 'bundler/setup' require 'zeus/parallel_tests/version' require 'open3' @@ -15,6 +16,13 @@ def launch_server end before(:all) do + # Copy current Appraisal gemfile to dummy app. + gemfile = File.read(ENV['BUNDLE_GEMFILE']).gsub(':path => "../"', ':path => "../../"') + File.open('spec/dummy/Gemfile', 'w+') { |f| f.write gemfile } + gemfile_lock = File.read("#{ENV['BUNDLE_GEMFILE']}.lock").gsub('remote: ../', 'remote: ../../') + File.open('spec/dummy/Gemfile.lock', 'w+') { |f| f.write gemfile_lock } + + # Launch Zeus. @server_pid = launch_server.to_s end @@ -26,8 +34,7 @@ def launch_server end it 'runs specs in two processes' do - pending - Dir.chdir 'spec/dummy/' do + Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_rspec', '-n', '2', 'spec') do |_, output| expect(output.to_a.map(&:chomp)).to include('2 processes for 2 specs, ~ 1 specs per process') end @@ -36,6 +43,5 @@ def launch_server after(:all) do system('kill', '-9', @server_pid) - system('rm', '-f', '.zeus.sock') end end diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index d6c89be..a173543 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -22,6 +22,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'parallel_tests', '>= 0.11.3' spec.add_development_dependency 'appraisal' + spec.add_development_dependency 'byebug' spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' From ad8fb292aa7e949e01bc8ff7a3577c6049c9f347 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 20:30:45 -0500 Subject: [PATCH 16/33] Update gem caching, cleanup better after tests, remove byebug --- circle.yml | 8 ++++---- spec/dummy/custom_plan.rb | 1 + spec/parallel_rspec_spec.rb | 2 +- zeus-parallel_tests.gemspec | 1 - 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/circle.yml b/circle.yml index e584d3c..f526e90 100644 --- a/circle.yml +++ b/circle.yml @@ -7,10 +7,10 @@ dependencies: - rvm install 1.9 cache_directories: - - /home/ubuntu/.rvm/gems/ruby-2.2.0/gems/ - - /home/ubuntu/.rvm/gems/ruby-2.1.5/gems/ - - /home/ubuntu/.rvm/gems/ruby-2.0.0-p598/gems/ - - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551/gems/ + - /home/ubuntu/.rvm/gems/ruby-2.2.0@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.1.5@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.0.0-p598@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests override: - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' diff --git a/spec/dummy/custom_plan.rb b/spec/dummy/custom_plan.rb index 41afd2b..73d7939 100644 --- a/spec/dummy/custom_plan.rb +++ b/spec/dummy/custom_plan.rb @@ -1,3 +1,4 @@ +require 'bundler/setup' require 'zeus/parallel_tests' class CustomPlan < Zeus::ParallelTests::Rails diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index aac46a0..883316c 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -1,6 +1,5 @@ $LOAD_PATH.unshift File.expand_path('../../../lib', __FILE__) -require 'bundler/setup' require 'zeus/parallel_tests/version' require 'open3' @@ -43,5 +42,6 @@ def launch_server after(:all) do system('kill', '-9', @server_pid) + system('rm', '-f', 'spec/dummy/Gemfile', 'spec/dummy/Gemfile.lock') end end diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index a173543..d6c89be 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -22,7 +22,6 @@ Gem::Specification.new do |spec| spec.add_dependency 'parallel_tests', '>= 0.11.3' spec.add_development_dependency 'appraisal' - spec.add_development_dependency 'byebug' spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' From 266f6cc98d728df855cae6d3869dfd9fc9438b4e Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 20:43:01 -0500 Subject: [PATCH 17/33] Clean up styles --- .rubocop.yml | 1 + Rakefile | 2 +- spec/dummy/spec/unit_test_a_spec.rb | 6 +++--- spec/dummy/spec/unit_test_b_spec.rb | 6 +++--- spec/parallel_rspec_spec.rb | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index ea3e14b..c8c588c 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,6 +1,7 @@ AllCops: Exclude: - bin/**/* + - spec/dummy/vendor/**/* Documentation: Enabled: false diff --git a/Rakefile b/Rakefile index e026ef2..4c774a2 100644 --- a/Rakefile +++ b/Rakefile @@ -3,4 +3,4 @@ require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) -task default: :spec \ No newline at end of file +task default: :spec diff --git a/spec/dummy/spec/unit_test_a_spec.rb b/spec/dummy/spec/unit_test_a_spec.rb index 1bd5594..f1f01dd 100644 --- a/spec/dummy/spec/unit_test_a_spec.rb +++ b/spec/dummy/spec/unit_test_a_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' -describe "Unit A" do - it "should be true" do +describe 'Unit A' do + it 'should be true' do expect(true).to be true end -end \ No newline at end of file +end diff --git a/spec/dummy/spec/unit_test_b_spec.rb b/spec/dummy/spec/unit_test_b_spec.rb index 77a668a..c2c5596 100644 --- a/spec/dummy/spec/unit_test_b_spec.rb +++ b/spec/dummy/spec/unit_test_b_spec.rb @@ -1,7 +1,7 @@ require 'spec_helper' -describe "Unit B" do - it "should be true" do +describe 'Unit B' do + it 'should be true' do expect(true).to be true end -end \ No newline at end of file +end diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index 883316c..70c623c 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -28,7 +28,7 @@ def launch_server it 'connects to server' do Dir.chdir 'spec/dummy/' do system('bundle', 'exec', 'zeus', 'r', 'true') - expect($?.exitstatus).to eq(0) + expect($CHILD_STATUS.exitstatus).to eq(0) end end From 7e9438f09da059dcd2301b5082b0d29e892e354b Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 20:44:35 -0500 Subject: [PATCH 18/33] Add rubocop and fix(?) cache directories --- circle.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index f526e90..c8f2cbb 100644 --- a/circle.yml +++ b/circle.yml @@ -7,10 +7,10 @@ dependencies: - rvm install 1.9 cache_directories: - - /home/ubuntu/.rvm/gems/ruby-2.2.0@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-2.1.5@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-2.0.0-p598@zeus-parallel_tests - - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551@zeus-parallel_tests + - /home/ubuntu/.rvm/gems/ruby-2.2.0 + - /home/ubuntu/.rvm/gems/ruby-2.1.5 + - /home/ubuntu/.rvm/gems/ruby-2.0.0-p598 + - /home/ubuntu/.rvm/gems/ruby-1.9.3-p551 override: - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' @@ -28,3 +28,4 @@ test: - rvm-exec 2.1 bash -c 'bundle exec appraisal rspec' - rvm-exec 2.0 bash -c 'bundle exec appraisal rspec' - rvm-exec 1.9 bash -c 'bundle exec appraisal rspec' + - bundle exec rubocop From dfc95f1d6fee711401dfdace9e6dddd1f64d36c1 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 21:03:22 -0500 Subject: [PATCH 19/33] Include English library --- spec/parallel_rspec_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index 70c623c..65fa02b 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -2,6 +2,7 @@ require 'zeus/parallel_tests/version' require 'open3' +require 'English' describe 'zeus parallel_rspec spec' do def launch_server @@ -28,7 +29,7 @@ def launch_server it 'connects to server' do Dir.chdir 'spec/dummy/' do system('bundle', 'exec', 'zeus', 'r', 'true') - expect($CHILD_STATUS.exitstatus).to eq(0) + expect($CHILD_STATUS.success?).to be true end end From ad9d8d35f2b9454daa6bc124544139eb053efa9b Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 21:06:14 -0500 Subject: [PATCH 20/33] Ensure .zeus.sock has been removed. --- spec/parallel_rspec_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index 65fa02b..246adbf 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -43,6 +43,6 @@ def launch_server after(:all) do system('kill', '-9', @server_pid) - system('rm', '-f', 'spec/dummy/Gemfile', 'spec/dummy/Gemfile.lock') + system('rm', '-f', 'spec/dummy/Gemfile', 'spec/dummy/Gemfile.lock', 'spec/dummy/.zeus.sock') end end From 14d80031368a849b2da1c6b69315f2c8c4e10bf4 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 21:08:29 -0500 Subject: [PATCH 21/33] Fix rubocop command --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index c8f2cbb..82bbb53 100644 --- a/circle.yml +++ b/circle.yml @@ -28,4 +28,4 @@ test: - rvm-exec 2.1 bash -c 'bundle exec appraisal rspec' - rvm-exec 2.0 bash -c 'bundle exec appraisal rspec' - rvm-exec 1.9 bash -c 'bundle exec appraisal rspec' - - bundle exec rubocop + - rvm-exec 2.2 bash -c 'bundle exec rubocop' From d7fe1c4f04d52c9728d46c9c2f8a1c0baa3d108c Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Mon, 20 Jul 2015 21:13:09 -0500 Subject: [PATCH 22/33] Exclude Circle installed gems from rubocop --- .rubocop.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.rubocop.yml b/.rubocop.yml index c8c588c..210bc6a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,6 +1,7 @@ AllCops: Exclude: - bin/**/* + - vendor/**/* - spec/dummy/vendor/**/* Documentation: From 660f146b3ad1ee33977d0a375e0754a01a880241 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 19:34:03 -0500 Subject: [PATCH 23/33] Re-enable Zeus 0.13 support --- Appraisals | 10 ++++++++++ README.md | 6 +----- gemfiles/rails_3_zeus_0.13.gemfile | 8 ++++++++ gemfiles/rails_4_zeus_0.13.gemfile | 8 ++++++++ zeus-parallel_tests.gemspec | 2 +- 5 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 gemfiles/rails_3_zeus_0.13.gemfile create mode 100644 gemfiles/rails_4_zeus_0.13.gemfile diff --git a/Appraisals b/Appraisals index 3294b0a..bbad0b1 100644 --- a/Appraisals +++ b/Appraisals @@ -7,3 +7,13 @@ appraise 'rails-4-zeus-0.15' do gem 'rails', '4.2.3' gem 'zeus', '0.15.4' end + +appraise 'rails-3-zeus-0.13' do + gem 'rails', '3.2.21' + gem 'zeus', '0.13.3' +end + +appraise 'rails-4-zeus-0.13' do + gem 'rails', '4.2.3' + gem 'zeus', '0.13.3' +end diff --git a/README.md b/README.md index 749d989..31b53da 100644 --- a/README.md +++ b/README.md @@ -67,14 +67,10 @@ Ready to go? [RailsCast episode #413 Fast Tests](http://railscasts.com/episodes/413-fast-tests) -Got Zeus 0.15.x? Add this line to your application's Gemfile: +Add this line to your application's Gemfile: gem 'zeus-parallel_tests' -Need Zeus 0.13.x? Use the 0.2.x branch: - - gem 'zeus-parallel_tests', '0.2.5' - And then execute: $ bundle diff --git a/gemfiles/rails_3_zeus_0.13.gemfile b/gemfiles/rails_3_zeus_0.13.gemfile new file mode 100644 index 0000000..87a137c --- /dev/null +++ b/gemfiles/rails_3_zeus_0.13.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "3.2.21" +gem "zeus", "0.13.3" + +gemspec :path => "../" diff --git a/gemfiles/rails_4_zeus_0.13.gemfile b/gemfiles/rails_4_zeus_0.13.gemfile new file mode 100644 index 0000000..42da9b5 --- /dev/null +++ b/gemfiles/rails_4_zeus_0.13.gemfile @@ -0,0 +1,8 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +gem "rails", "4.2.3" +gem "zeus", "0.13.3" + +gemspec :path => "../" diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index d6c89be..cc52605 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ['lib'] - spec.add_dependency 'zeus', '~> 0.15.4' + spec.add_dependency 'zeus', '>= 0.13.0' spec.add_dependency 'parallel_tests', '>= 0.11.3' spec.add_development_dependency 'appraisal' From 120c1dfaca1951bb36fc72af08e7489b42d41202 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 19:37:11 -0500 Subject: [PATCH 24/33] Add Zeus 0.13 gemfiles for circle --- circle.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/circle.yml b/circle.yml index 82bbb53..b4b18d1 100644 --- a/circle.yml +++ b/circle.yml @@ -21,6 +21,14 @@ dependencies: - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' test: override: From 3cd958b59a7efe6137d049f1c7d832576a65cd36 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:41:06 -0500 Subject: [PATCH 25/33] Add cucumber support/tests --- lib/zeus/parallel_tests/rails.rb | 14 ++++++++++---- spec/parallel_rspec_spec.rb | 11 ++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/zeus/parallel_tests/rails.rb b/lib/zeus/parallel_tests/rails.rb index 711ebe9..ba72b99 100644 --- a/lib/zeus/parallel_tests/rails.rb +++ b/lib/zeus/parallel_tests/rails.rb @@ -5,6 +5,10 @@ module Zeus module ParallelTests class Rails < ::Zeus::Rails def parallel_cucumber + if ENV.key?('RAILS_ENV') + puts "Warning: Deleting RAILS_ENV (which is `#{ENV['RAILS_ENV']}` as Zeus will complain about it." + ENV.delete('RAILS_ENV') + end exec parallel_runner_command 'cucumber', ARGV end @@ -35,11 +39,13 @@ def test(argv = ARGV) end end + def cucumber_environment + require 'cucumber/rspec/disable_option_parser' + require 'parallel_tests' + end + def cucumber(argv = ARGV) - cucumber_main = Cucumber::Cli::Main.new(argv.dup) - had_failures = cucumber_main.execute!(@cucumber_runtime) - exit_code = had_failures ? 1 : 0 - exit exit_code + ::ParallelTests::CLI.new.run(['--type', 'cucumber'] + argv) end # End of patches for Zeus diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index 246adbf..e9d2edb 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -33,7 +33,7 @@ def launch_server end end - it 'runs specs in two processes' do + it 'runs rspec specs in two processes' do Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_rspec', '-n', '2', 'spec') do |_, output| expect(output.to_a.map(&:chomp)).to include('2 processes for 2 specs, ~ 1 specs per process') @@ -41,6 +41,15 @@ def launch_server end end + # TODO: Make parallel_cumber respect -n parameter. + it 'runs cucumbers in two processes' do + Dir.chdir 'spec/dummy' do + Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_cucumber', '-n', '2', 'features') do |_, output| + expect(output.to_a.map(&:chomp)).to include('8 processes for 1 features, ~ 0 features per process') + end + end + end + after(:all) do system('kill', '-9', @server_pid) system('rm', '-f', 'spec/dummy/Gemfile', 'spec/dummy/Gemfile.lock', 'spec/dummy/.zeus.sock') From 64eaab5fd741fc77754ead6846f1fe6973e3e952 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:46:48 -0500 Subject: [PATCH 26/33] Use System to determine CPUs until --- spec/parallel_rspec_spec.rb | 3 ++- zeus-parallel_tests.gemspec | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index e9d2edb..93a5169 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -2,6 +2,7 @@ require 'zeus/parallel_tests/version' require 'open3' +require 'system' require 'English' describe 'zeus parallel_rspec spec' do @@ -45,7 +46,7 @@ def launch_server it 'runs cucumbers in two processes' do Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_cucumber', '-n', '2', 'features') do |_, output| - expect(output.to_a.map(&:chomp)).to include('8 processes for 1 features, ~ 0 features per process') + expect(output.to_a.map(&:chomp)).to include("#{System::CPU.count} processes for 1 features, ~ 0 features per process") end end end diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index cc52605..a502156 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -26,6 +26,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec', '>= 3.0' + spec.add_development_dependency 'system' # Gems used by dummy app in testing. spec.add_development_dependency 'cucumber-rails' From d4ad9212f3cfad32680514b286ecfd39bd1f26d9 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:47:36 -0500 Subject: [PATCH 27/33] Remove 8 procs until cucumber is fixed --- spec/parallel_rspec_spec.rb | 3 +-- zeus-parallel_tests.gemspec | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_rspec_spec.rb index 93a5169..e1b6ba6 100644 --- a/spec/parallel_rspec_spec.rb +++ b/spec/parallel_rspec_spec.rb @@ -2,7 +2,6 @@ require 'zeus/parallel_tests/version' require 'open3' -require 'system' require 'English' describe 'zeus parallel_rspec spec' do @@ -46,7 +45,7 @@ def launch_server it 'runs cucumbers in two processes' do Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_cucumber', '-n', '2', 'features') do |_, output| - expect(output.to_a.map(&:chomp)).to include("#{System::CPU.count} processes for 1 features, ~ 0 features per process") + expect(output.to_a.map(&:chomp)).to include('processes for 1 features, ~ 0 features per process') end end end diff --git a/zeus-parallel_tests.gemspec b/zeus-parallel_tests.gemspec index a502156..cc52605 100644 --- a/zeus-parallel_tests.gemspec +++ b/zeus-parallel_tests.gemspec @@ -26,7 +26,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'rake' spec.add_development_dependency 'rubocop' spec.add_development_dependency 'rspec', '>= 3.0' - spec.add_development_dependency 'system' # Gems used by dummy app in testing. spec.add_development_dependency 'cucumber-rails' From cbcb2150757e927f6425d42285dcbfa871a9b27b Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:49:44 -0500 Subject: [PATCH 28/33] Reorder gemfile checks by ruby versiosn --- circle.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/circle.yml b/circle.yml index b4b18d1..ad2bb7f 100644 --- a/circle.yml +++ b/circle.yml @@ -15,18 +15,18 @@ dependencies: override: - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' - - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - rvm-exec 2.2 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - rvm-exec 2.1 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - rvm-exec 2.0 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.15.gemfile' + - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.15.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.15.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_3_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_3_zeus_0.13.gemfile' - rvm-exec 1.9 bash -c 'bundle check --gemfile=gemfiles/rails_4_zeus_0.13.gemfile || bundle install --gemfile=gemfiles/rails_4_zeus_0.13.gemfile' From 5e74939fa9afd45b5aa115598f63f01855bf83c0 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:50:33 -0500 Subject: [PATCH 29/33] Rename parallel spec to match contents (rspecs and cucumbers) --- spec/{parallel_rspec_spec.rb => parallel_spec.rb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename spec/{parallel_rspec_spec.rb => parallel_spec.rb} (100%) diff --git a/spec/parallel_rspec_spec.rb b/spec/parallel_spec.rb similarity index 100% rename from spec/parallel_rspec_spec.rb rename to spec/parallel_spec.rb From e39ad308c1d883eff583163f8620f4e5b6275220 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:50:47 -0500 Subject: [PATCH 30/33] Bump version --- lib/zeus/parallel_tests/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/zeus/parallel_tests/version.rb b/lib/zeus/parallel_tests/version.rb index 71e0a8c..763c052 100644 --- a/lib/zeus/parallel_tests/version.rb +++ b/lib/zeus/parallel_tests/version.rb @@ -1,5 +1,5 @@ module Zeus module ParallelTests - VERSION = '0.2.5' + VERSION = '0.3.0' end end From a27fb8b6b0b15053b8d68495061213f323fcc534 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:54:24 -0500 Subject: [PATCH 31/33] Fix parallel spec --- spec/parallel_spec.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spec/parallel_spec.rb b/spec/parallel_spec.rb index e1b6ba6..1865984 100644 --- a/spec/parallel_spec.rb +++ b/spec/parallel_spec.rb @@ -4,7 +4,7 @@ require 'open3' require 'English' -describe 'zeus parallel_rspec spec' do +describe 'zeus parallel spec' do def launch_server pid = fork do Dir.chdir 'spec/dummy/' do @@ -41,11 +41,10 @@ def launch_server end end - # TODO: Make parallel_cumber respect -n parameter. it 'runs cucumbers in two processes' do Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_cucumber', '-n', '2', 'features') do |_, output| - expect(output.to_a.map(&:chomp)).to include('processes for 1 features, ~ 0 features per process') + expect(output.to_a.map(&:chomp)).to include('2 processes for 2 features, ~ 0 features per process') end end end From 72d98021778cf431c54d592fcf9e175db1ab7d70 Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 20:58:56 -0500 Subject: [PATCH 32/33] Don't incorrectly nest parallel specs --- lib/zeus/parallel_tests/rails.rb | 4 ++-- spec/parallel_spec.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/zeus/parallel_tests/rails.rb b/lib/zeus/parallel_tests/rails.rb index ba72b99..de77165 100644 --- a/lib/zeus/parallel_tests/rails.rb +++ b/lib/zeus/parallel_tests/rails.rb @@ -41,11 +41,11 @@ def test(argv = ARGV) def cucumber_environment require 'cucumber/rspec/disable_option_parser' - require 'parallel_tests' + require 'cucumber/cli/main' end def cucumber(argv = ARGV) - ::ParallelTests::CLI.new.run(['--type', 'cucumber'] + argv) + ::Cucumber::Cli::Main.execute(argv) end # End of patches for Zeus diff --git a/spec/parallel_spec.rb b/spec/parallel_spec.rb index 1865984..0994742 100644 --- a/spec/parallel_spec.rb +++ b/spec/parallel_spec.rb @@ -44,7 +44,7 @@ def launch_server it 'runs cucumbers in two processes' do Dir.chdir 'spec/dummy' do Open3.popen2e('bundle', 'exec', 'zeus', 'parallel_cucumber', '-n', '2', 'features') do |_, output| - expect(output.to_a.map(&:chomp)).to include('2 processes for 2 features, ~ 0 features per process') + expect(output.to_a.map(&:chomp)).to include('2 processes for 2 features, ~ 1 features per process') end end end From 67628b6b488fdd7d5470a26fd3ebc0e08031299b Mon Sep 17 00:00:00 2001 From: Zach Schneider Date: Tue, 21 Jul 2015 21:06:10 -0500 Subject: [PATCH 33/33] Properly suppress zeus output --- spec/parallel_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/parallel_spec.rb b/spec/parallel_spec.rb index 0994742..2ca3cc0 100644 --- a/spec/parallel_spec.rb +++ b/spec/parallel_spec.rb @@ -8,7 +8,7 @@ def launch_server pid = fork do Dir.chdir 'spec/dummy/' do - exec 'bundle exec zeus start &>/dev/null' + exec 'bundle exec zeus start > /dev/null' end end sleep 3