zeus-parallel_tests 0.2.0.beta1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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'