zeus-parallel_tests 0.2.0.beta1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: defcebae997e5144a3de67c7dfdf79a7a1c99006
4
- data.tar.gz: a3678f055ac0a432fb77181217b6e81b79db3bc0
3
+ metadata.gz: d4e1e17b133193603c77f4868d1e68d0b7c0f644
4
+ data.tar.gz: e04540bc1ede7ba42bcdba4f2fbfb1659b8c85c5
5
5
  SHA512:
6
- metadata.gz: 3d8924e1842bda6494c16b2a1d05f74c5030902a00b623fe49c97ba5f5590d6e6d0d4e1d468602260e0c8fc871763d1fe64e38e8108d154734dd0f61eb89f0e2
7
- data.tar.gz: 5902643045dbd7750e906373cb4167588d14fa8dc9071cb79b1703a5a40cf717661f1cb81f12b27dac42aaf64b899c0f17e3f455a9fad3312d1265d4796041b9
6
+ metadata.gz: 0a298e800e965947735d857230853e29b8449f8e8aa71441f26b256a48bd212ef751bc57f847962e07d636da498228f1ecbc6941866010759ac9cf75e66021ca
7
+ data.tar.gz: 8ae3ca888ae1e3a71646fbafb15bfd426346fbad887bb3eb9c4ef29cf2394c153a86da8b7a29dafc8373e7557a251f9fa3101ad8c606e69f1cf6bc28b3c3422f
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/.travis.yml CHANGED
@@ -2,4 +2,4 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
- script: bundle exec rake travis:test
5
+ script: bundle exec rake travis:spec
data/Rakefile CHANGED
@@ -1,20 +1,17 @@
1
1
  require "bundler/gem_tasks"
2
- require 'rake/testtask'
2
+ require 'rspec/core/rake_task'
3
3
 
4
- task :default => [:test]
4
+ RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- Rake::TestTask.new do |t|
7
- t.libs.push "lib"
8
- t.test_files = FileList[File.expand_path('../test/**/*_test.rb', __FILE__)]
9
- t.verbose = true
10
- end
6
+ task :default => :spec
7
+ namespace :travis do
8
+ RSpec::Core::RakeTask.new(:spec) do |task|
9
+ file_list = FileList['spec/**/*_spec.rb']
11
10
 
11
+ %w(slow).each do |exclude|
12
+ file_list = file_list.exclude("spec/#{exclude}/**/*_spec.rb")
13
+ end
12
14
 
13
- namespace :travis do
14
- Rake::TestTask.new do |t|
15
- t.libs.push "lib"
16
- t.test_files = FileList[File.expand_path('../test/**/*_test.rb', __FILE__)] -
17
- FileList[File.expand_path('../test/slow/*_test.rb', __FILE__)]
18
- t.verbose = true
15
+ task.pattern = file_list
19
16
  end
20
17
  end
@@ -1,5 +1,5 @@
1
1
  module Zeus
2
2
  module ParallelTests
3
- VERSION = "0.2.0.beta1"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -3,6 +3,11 @@ require 'tempfile'
3
3
 
4
4
  module Zeus::ParallelTests
5
5
  class Worker
6
+ def self.run(argv, env)
7
+ dumped_argv = argv.dup
8
+ new(dumped_argv.shift, env, dumped_argv).spawn
9
+ end
10
+
6
11
  def self.command(suite)
7
12
  "ruby #{__FILE__} #{suite}"
8
13
  end
@@ -13,7 +18,7 @@ module Zeus::ParallelTests
13
18
  @suite = suite
14
19
  end
15
20
 
16
- def call
21
+ def spawn
17
22
  system %{zeus parallel_#{@suite}_worker #{parallel_tests_attributes}}
18
23
  args_file.unlink
19
24
  $?.to_i
@@ -45,7 +50,6 @@ module Zeus::ParallelTests
45
50
  end
46
51
 
47
52
  if $PROGRAM_NAME == __FILE__
48
- argv = ARGV.dup
49
- exit Zeus::ParallelTests::Worker.new(argv.shift, ENV, argv).call.to_i
53
+ exit Zeus::ParallelTests::Worker.run(ARGV, ENV)
50
54
  end
51
55
 
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+
3
+ require_relative "../../../../lib/zeus/parallel_tests/worker"
4
+
5
+ describe Zeus::ParallelTests::Worker do
6
+ describe ".run" do
7
+ let(:cli_argv) { ["rspec", "spec/models/model_spec.rb"] }
8
+ let(:cli_env) { {"TEST_ENV_NUMBER" => "3"} }
9
+ let(:worker) { double("worker", spawn: 0) }
10
+ before { Zeus::ParallelTests::Worker.stub(new: worker) }
11
+ subject { Zeus::ParallelTests::Worker.run(cli_argv, cli_env) }
12
+
13
+ it "creates instance of worker" do
14
+ Zeus::ParallelTests::Worker.should_receive(:new)
15
+ .with("rspec", cli_env, ["spec/models/model_spec.rb"])
16
+ .and_return(worker)
17
+ subject
18
+ end
19
+
20
+ it "does not modify original env and argv" do
21
+ subject
22
+ expect(cli_argv).to eq(["rspec", "spec/models/model_spec.rb"])
23
+ expect(cli_env).to eq({"TEST_ENV_NUMBER" => "3"})
24
+ end
25
+
26
+ it "returns exit code" do
27
+ expect(subject).to eq(0)
28
+ end
29
+ end
30
+
31
+ describe "#spawn" do
32
+ subject { worker.spawn }
33
+ let(:worker) { Zeus::ParallelTests::Worker.new("rspec", cli_env, ["spec/file_spec.rb"]) }
34
+ let(:cli_env) { {"TEST_ENV_NUMBER" => 2, "PARALLEL_TEST_GROUPS" => 4} }
35
+ let(:argv_file) { double("argv_file", path: "argv_file_path", unlink: true, puts: nil, close: nil) }
36
+ before do
37
+ Tempfile.stub(new: argv_file)
38
+ worker.stub(system: true)
39
+ end
40
+
41
+ it "writes args to file" do
42
+ argv_file.should_receive(:puts).with("spec/file_spec.rb")
43
+ subject
44
+ end
45
+
46
+ it "spawns worker and passes TEST_ENV_NUMBER, PARALLEL_TEST_GROUPS and argv file path" do
47
+ worker.should_receive(:system).with("zeus parallel_rspec_worker 2 4 argv_file_path")
48
+ subject
49
+ end
50
+
51
+ it "removes argv_file after run" do
52
+ argv_file.should_receive(:unlink)
53
+ subject
54
+ end
55
+
56
+ it "returns exit code" do
57
+ system "true"
58
+ worker.should_receive(:system) { $?.stub(to_i: 1) }
59
+ expect(subject).to eq(1)
60
+ end
61
+ end
62
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../../test_helper', __FILE__)
1
+ require 'spec_helper'
2
2
  require 'tmpdir'
3
3
  require 'fileutils'
4
4
 
@@ -23,7 +23,7 @@ describe 'zeus-parallel_tests' do
23
23
  map { |f| File.join(@project_dir, f) }
24
24
 
25
25
  expected_files.each do |f|
26
- assert File.exists?(f), "#{f} should exists"
26
+ File.exists?(f).should be_true
27
27
  end
28
28
  end
29
29
  end
@@ -0,0 +1,17 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+ end
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
26
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeus-parallel_tests
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0.beta1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artur Roszczyk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-26 00:00:00.000000000 Z
11
+ date: 2013-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeus
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Integration for zeus and parallel_tests
70
84
  email:
71
85
  - artur.roszczyk@gmail.com
@@ -75,6 +89,7 @@ extensions: []
75
89
  extra_rdoc_files: []
76
90
  files:
77
91
  - .gitignore
92
+ - .rspec
78
93
  - .ruby-gemset
79
94
  - .ruby-version
80
95
  - .travis.yml
@@ -89,9 +104,9 @@ files:
89
104
  - lib/zeus/parallel_tests/templates/zeus.json
90
105
  - lib/zeus/parallel_tests/version.rb
91
106
  - lib/zeus/parallel_tests/worker.rb
92
- - test/integration_test.rb
93
- - test/slow/zeus-parallel_tests_test.rb
94
- - test/test_helper.rb
107
+ - spec/lib/zeus/parallel_tests/worker_spec.rb
108
+ - spec/slow/zeus-parallel_tests_spec.rb
109
+ - spec/spec_helper.rb
95
110
  - zeus-parallel_tests.gemspec
96
111
  homepage: ''
97
112
  licenses:
@@ -108,9 +123,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
123
  version: '0'
109
124
  required_rubygems_version: !ruby/object:Gem::Requirement
110
125
  requirements:
111
- - - '>'
126
+ - - '>='
112
127
  - !ruby/object:Gem::Version
113
- version: 1.3.1
128
+ version: '0'
114
129
  requirements: []
115
130
  rubyforge_project:
116
131
  rubygems_version: 2.0.3
@@ -118,7 +133,7 @@ signing_key:
118
133
  specification_version: 4
119
134
  summary: ''
120
135
  test_files:
121
- - test/integration_test.rb
122
- - test/slow/zeus-parallel_tests_test.rb
123
- - test/test_helper.rb
136
+ - spec/lib/zeus/parallel_tests/worker_spec.rb
137
+ - spec/slow/zeus-parallel_tests_spec.rb
138
+ - spec/spec_helper.rb
124
139
  has_rdoc:
@@ -1,9 +0,0 @@
1
- require File.expand_path("../test_helper", __FILE__)
2
-
3
- require 'zeus/parallel_tests'
4
-
5
- describe "zeus-parallel_tests" do
6
- it 'should be tested' do
7
- skip("any ideas how to test this?")
8
- end
9
- end
data/test/test_helper.rb DELETED
@@ -1,5 +0,0 @@
1
- ENV["TEST"] = 'true'
2
- require 'rubygems'
3
- require 'minitest/autorun'
4
- $:.unshift File.expand_path("../../lib")
5
- require 'zeus/parallel_tests'