parallel_tests 0.7.2 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- parallel_tests (0.7.2)
4
+ parallel_tests (0.7.3)
5
5
  parallel
6
6
 
7
7
  GEM
data/Readme.md CHANGED
@@ -7,7 +7,7 @@ Setup for Rails
7
7
  ===============
8
8
  [still using Rails 2?](https://github.com/grosser/parallel_tests/blob/master/ReadmeRails2.md)
9
9
 
10
- ## Install
10
+ ### Install
11
11
  If you use RSpec: ensure you got >= 2.4
12
12
 
13
13
  As gem
@@ -22,21 +22,19 @@ OR as plugin
22
22
  # add to Gemfile
23
23
  gem "parallel", :group => :development
24
24
 
25
- ## Setup
25
+ ### Add to `config/database.yml`
26
26
  ParallelTests uses 1 database per test-process, 2 processes will use `*_test` and `*_test2`.
27
27
 
28
-
29
- ### 1: Add to `config/database.yml`
30
28
  test:
31
29
  database: yourproject_test<%= ENV['TEST_ENV_NUMBER'] %>
32
30
 
33
- ### 2: Create additional database(s)
31
+ ### Create additional database(s)
34
32
  rake parallel:create
35
33
 
36
- ### 3: Copy development schema (repeat after migrations)
34
+ ### Copy development schema (repeat after migrations)
37
35
  rake parallel:prepare
38
36
 
39
- ### 4: Run!
37
+ ### Run!
40
38
  rake parallel:test # Test::Unit
41
39
  rake parallel:spec # RSpec
42
40
  rake parallel:features # Cucumber
@@ -53,8 +51,8 @@ Test by pattern (e.g. use one integration server per subfolder / see if you brok
53
51
  rake parallel:test['user|product'] # run user and product related tests
54
52
 
55
53
 
56
- Example output
57
- --------------
54
+ ### Example output
55
+
58
56
  2 processes for 210 specs, ~ 105 specs per process
59
57
  ... test output ...
60
58
 
@@ -72,29 +70,27 @@ Log test runtime to give each process the same runtime.
72
70
 
73
71
  Rspec: Add to your `.rspec_parallel` (or `.rspec`) :
74
72
 
75
- RSpec
76
- If installed as plugin: -I vendor/plugins/parallel_tests/lib
77
- --format progress
78
- --format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
73
+ If installed as plugin: -I vendor/plugins/parallel_tests/lib
74
+ --format progress
75
+ --format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log
79
76
 
80
77
  Test::Unit: Add to your `test_helper.rb`:
81
78
 
82
79
  require 'parallel_tests/test/runtime_logger'
83
80
 
84
81
 
85
- SpecSummaryLogger
82
+ RSpec: SummaryLogger
86
83
  --------------------
87
84
 
88
85
  This logger logs the test output without the different processes overwriting each other.
89
86
 
90
87
  Add the following to your `.rspec_parallel` (or `.rspec`) :
91
88
 
92
- RSpec:
93
- If installed as plugin: -I vendor/plugins/parallel_tests/lib
94
- --format progress
95
- --format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
89
+ If installed as plugin: -I vendor/plugins/parallel_tests/lib
90
+ --format progress
91
+ --format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log
96
92
 
97
- SpecFailuresLogger
93
+ RSpec: FailuresLogger
98
94
  -----------------------
99
95
 
100
96
  This logger produces pasteable command-line snippets for each failed example.
@@ -105,10 +101,9 @@ E.g.
105
101
 
106
102
  Add the following to your `.rspec_parallel` (or `.rspec`) :
107
103
 
108
- RSpec:
109
- If installed as plugin: -I vendor/plugins/parallel_tests/lib
110
- --format progress
111
- --format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log
104
+ If installed as plugin: -I vendor/plugins/parallel_tests/lib
105
+ --format progress
106
+ --format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log
112
107
 
113
108
  Setup for non-rails
114
109
  ===================
@@ -156,7 +151,7 @@ TIPS
156
151
  - [Capybara + Selenium] add to env.rb: `Capybara.server_port = 8888 + ENV['TEST_ENV_NUMBER'].to_i`
157
152
  - [RSpec] add a `.rspec_parallel` to use different options, e.g. **no --drb**
158
153
  - [RSpec] delete `script/spec`
159
- - [RSpec] [spork](https://github.com/timcharper/spork) does not work in parallel
154
+ - [RSpec] [spork](https://github.com/sporkrb/spork) does not work in parallel
160
155
  - [RSpec] remove --loadby from you spec/*.opts
161
156
  - [RSpec] Instantly see failures (instead of just a red F) with [rspec-instafail](https://github.com/grosser/rspec-instafail)
162
157
  - [Bundler] if you have a `Gemfile` then `bundle exec` will be used to run tests
@@ -167,6 +162,7 @@ TIPS
167
162
  - [ActiveRecord] if you do not have `db:abort_if_pending_migrations` add this to your Rakefile: `task('db:abort_if_pending_migrations'){}`
168
163
  - `export PARALLEL_TEST_PROCESSORS=X` in your environment and parallel_tests will use this number of processors by default
169
164
  - [ZSH] use quotes to use rake arguments `rake "parallel:prepare[3]"`
165
+ - [email_spec and/or action_mailer_cache_delivery](https://github.com/grosser/parallel_tests/wiki)
170
166
 
171
167
  TODO
172
168
  ====
@@ -207,6 +203,7 @@ inspired by [pivotal labs](http://pivotallabs.com/users/miked/blog/articles/849-
207
203
  - [Lawrence Wang](https://github.com/levity)
208
204
  - [Potapov Sergey](https://github.com/greyblake)
209
205
  - [Łukasz Tackowiak](https://github.com/lukasztackowiak)
206
+ - [Pedro Carriço](https://github.com/pedrocarrico)
210
207
 
211
208
  [Michael Grosser](http://grosser.it)<br/>
212
209
  michael@grosser.it<br/>
@@ -6,9 +6,14 @@ module ParallelTests
6
6
  def self.run_tests(test_files, process_number, options)
7
7
  color = ($stdout.tty? ? 'AUTOTEST=1 ; export AUTOTEST ;' : '')#display color when we are in a terminal
8
8
  runtime_logging = " --format ParallelTests::Cucumber::RuntimeLogger --out #{runtime_log}"
9
- cmd = "#{color} #{executable}"
10
- cmd << runtime_logging if File.directory?(File.dirname(runtime_log))
11
- cmd << " #{options[:test_options]} #{test_files*' '}"
9
+ cmd = [
10
+ color,
11
+ executable,
12
+ (runtime_logging if File.directory?(File.dirname(runtime_log))),
13
+ options[:test_options],
14
+ cucumber_opts,
15
+ *test_files
16
+ ].compact.join(" ")
12
17
  execute_command(cmd, process_number, options)
13
18
  end
14
19
 
@@ -37,6 +42,13 @@ module ParallelTests
37
42
  def self.line_is_result?(line)
38
43
  line =~ /^\d+ (steps|scenarios)/
39
44
  end
45
+
46
+ def self.cucumber_opts
47
+ config = 'config/cucumber.yml'
48
+ if File.exists?(config) && File.read(config) =~ /^parallel:/
49
+ "--profile parallel"
50
+ end
51
+ end
40
52
  end
41
53
  end
42
54
  end
@@ -1,3 +1,3 @@
1
1
  module ParallelTests
2
- VERSION = Version = '0.7.2'
2
+ VERSION = Version = '0.7.3'
3
3
  end
@@ -52,6 +52,28 @@ describe ParallelTests::Cucumber do
52
52
  ParallelTests::Cucumber::Runner.should_receive(:open).with{|x,y| x =~ %r{script/cucumber .* -p default}}.and_return mocked_process
53
53
  call(['xxx'],1,:test_options => '-p default')
54
54
  end
55
+
56
+ it "uses parallel profile if config/cucumber.yml contains it" do
57
+ file_contents = 'parallel: -f progress'
58
+ ParallelTests::Cucumber::Runner.should_receive(:open).with{|x,y| x =~ %r{script/cucumber .* foo bar --profile parallel}}.and_return mocked_process
59
+ File.should_receive(:exists?).with('config/cucumber.yml').and_return true
60
+ File.should_receive(:read).with('config/cucumber.yml').and_return file_contents
61
+ call(['xxx'],1, :test_options => 'foo bar')
62
+ end
63
+
64
+ it "does not use parallel profile if config/cucumber.yml does not contain it" do
65
+ file_contents = 'blob: -f progress'
66
+ ParallelTests::Cucumber::Runner.should_receive(:open).with{|x,y| x =~ %r{script/cucumber .* foo bar}}.and_return mocked_process
67
+ File.should_receive(:exists?).with('config/cucumber.yml').and_return true
68
+ File.should_receive(:read).with('config/cucumber.yml').and_return file_contents
69
+ call(['xxx'],1,:test_options => 'foo bar')
70
+ end
71
+
72
+ it "does not use the parallel profile if config/cucumber.yml does not exist" do
73
+ ParallelTests::Cucumber::Runner.should_receive(:open).with{|x,y| x =~ %r{script/cucumber .*}}.and_return mocked_process
74
+ File.should_receive(:exists?).with('config/cucumber.yml').and_return false
75
+ call(['xxx'],1,{})
76
+ end
55
77
  end
56
78
 
57
79
  describe :find_results do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parallel_tests
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.2
4
+ version: 0.7.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-07 00:00:00.000000000 Z
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: parallel
16
- requirement: &20782100 !ruby/object:Gem::Requirement
16
+ requirement: &22437320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20782100
24
+ version_requirements: *22437320
25
25
  description:
26
26
  email: michael@grosser.it
27
27
  executables:
@@ -81,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
81
81
  version: '0'
82
82
  segments:
83
83
  - 0
84
- hash: -3546788160221548975
84
+ hash: 1971171336548076619
85
85
  required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
90
  version: '0'
91
91
  segments:
92
92
  - 0
93
- hash: -3546788160221548975
93
+ hash: 1971171336548076619
94
94
  requirements: []
95
95
  rubyforge_project:
96
96
  rubygems_version: 1.8.15