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 +4 -4
- data/.rspec +2 -0
- data/.travis.yml +1 -1
- data/Rakefile +10 -13
- data/lib/zeus/parallel_tests/version.rb +1 -1
- data/lib/zeus/parallel_tests/worker.rb +7 -3
- data/spec/lib/zeus/parallel_tests/worker_spec.rb +62 -0
- data/{test/slow/zeus-parallel_tests_test.rb → spec/slow/zeus-parallel_tests_spec.rb} +2 -2
- data/spec/spec_helper.rb +17 -0
- data/zeus-parallel_tests.gemspec +1 -0
- metadata +25 -10
- data/test/integration_test.rb +0 -9
- data/test/test_helper.rb +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4e1e17b133193603c77f4868d1e68d0b7c0f644
|
4
|
+
data.tar.gz: e04540bc1ede7ba42bcdba4f2fbfb1659b8c85c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a298e800e965947735d857230853e29b8449f8e8aa71441f26b256a48bd212ef751bc57f847962e07d636da498228f1ecbc6941866010759ac9cf75e66021ca
|
7
|
+
data.tar.gz: 8ae3ca888ae1e3a71646fbafb15bfd426346fbad887bb3eb9c4ef29cf2394c153a86da8b7a29dafc8373e7557a251f9fa3101ad8c606e69f1cf6bc28b3c3422f
|
data/.rspec
ADDED
data/.travis.yml
CHANGED
data/Rakefile
CHANGED
@@ -1,20 +1,17 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
require '
|
2
|
+
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
-
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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
|
-
|
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
|
@@ -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
|
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
|
-
|
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
|
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
|
-
|
26
|
+
File.exists?(f).should be_true
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
data/spec/spec_helper.rb
ADDED
@@ -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
|
data/zeus-parallel_tests.gemspec
CHANGED
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
|
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-
|
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
|
-
-
|
93
|
-
-
|
94
|
-
-
|
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:
|
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
|
-
-
|
122
|
-
-
|
123
|
-
-
|
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:
|
data/test/integration_test.rb
DELETED