rspec-multiprocess_runner 0.4.2 → 0.5.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: c9043da12dcd131db953b5a458b5c698c04552c1
4
- data.tar.gz: 4b47655d04051531ab0cde3578c68923beaf742e
3
+ metadata.gz: a247cd59b3face52efbad2cea055cbee9c672fcb
4
+ data.tar.gz: c8d69b7425a8eb1b72e4a7bdad6fd1591aa6b8e4
5
5
  SHA512:
6
- metadata.gz: 9d6e215f4251d81ce2ee02aa51ae4a23f790c7b1b1650cd4e7bc160b6f4acb36eac6d365504b4b872a0974da758f4da20ea2c8d94925330df163f5fa9161a44e
7
- data.tar.gz: 4ad013cc57bbe5ee16c2a6e26720f98fd60c84eeffafa6e9e3e634ca7c658427f913a8081ccc2b14b6b82680d2287019d9768420d4983db79332753e45471fe8
6
+ metadata.gz: 89cec8329b963461fb01765e9a5f67b7e28dbff8ecaa75148928dded50086ae5044edc61740cf8c9a51fc10666e9fbc11acd3a89aa1ef9d2ac3a8b9da442880f
7
+ data.tar.gz: d25d42871728d8847605035daaed5b45e49fad4a4664ce55d40d4a588909756ba435301b9c7631306acef836e4163f03c04105a5c8e2ee10bbee1bd67e28eb71
data/.gitignore CHANGED
@@ -8,3 +8,5 @@
8
8
  /spec/reports/
9
9
  /spec/tmp
10
10
  /tmp/
11
+ /manual_test_specs/
12
+ !/manual_test_specs/.keep
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.5.0
2
+
3
+ * Added support for RSpec 3. Did not maintain compatability with RSpec 2.
4
+
1
5
  # 0.4.2
2
6
 
3
7
  * Change to Rake.application.last_description as last_comment is deprecated
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ def template(description:, failure: false)
4
+ return <<-TEMPLATE.gsub(/^\s+\|/, '')
5
+ |describe '#{description}' do
6
+ | it '#{failure ? 'fails' : 'works'}' do
7
+ | sleep(#{description.reverse.to_i(36).to_f / 1296})
8
+ | expect(2 + 2).to eq(#{failure ? 5 : 4})
9
+ | end
10
+ |end
11
+ TEMPLATE
12
+ end
13
+
14
+ ('a'..'z').to_a.product(('a'..'z').to_a)
15
+ .map { |*chars| chars.join('') }
16
+ .each do |description|
17
+ File.open("./manual_test_specs/#{description}_spec.rb", 'w+')
18
+ .write(template(description: description))
19
+ end
@@ -0,0 +1,23 @@
1
+ require 'rspec/core/formatters'
2
+
3
+ module RSpec::Core::Formatters
4
+ class ExceptionPresenter
5
+ def fully_formatted_lines(failure_number, colorizer)
6
+ [
7
+ detail_formatter.call(example, colorizer),
8
+ formatted_message_and_backtrace(colorizer),
9
+ extra_detail_formatter.call(failure_number, colorizer)
10
+ ].compact.flatten.map { |line| "#{' ' * (2 + @indentation)}#{line}" }
11
+ end
12
+ end
13
+
14
+ class Loader
15
+ def duplicate_formatter_exists?(new_formatter)
16
+ @formatters.any? do |formatter|
17
+ formatter.class == new_formatter.class &&
18
+ (formatter.output == new_formatter.output ||
19
+ formatter.class == RSpec::MultiprocessRunner::ReportingFormatter)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,14 +1,24 @@
1
1
  # encoding: utf-8
2
2
  require 'rspec/multiprocess_runner'
3
+ require 'rspec/core'
3
4
  require 'rspec/core/formatters/base_text_formatter'
4
5
 
6
+ require 'rspec/core/formatters_ext'
7
+
5
8
  module RSpec::MultiprocessRunner
6
9
  ##
7
10
  # RSpec formatter used by workers to communicate spec execution to the
8
11
  # coordinator.
9
12
  #
10
13
  # @private
11
- class ReportingFormatter < RSpec::Core::Formatters::BaseTextFormatter
14
+ class ReportingFormatter < RSpec::Core::Formatters::DocumentationFormatter
15
+ RSpec::Core::Formatters.register self,
16
+ :example_group_started,
17
+ :example_group_finished,
18
+ :example_passed,
19
+ :example_pending,
20
+ :example_failed
21
+
12
22
  class << self
13
23
  # The worker to which to report spec status. This has to be a class-level
14
24
  # attribute because you can't access the formatter instance used by
@@ -21,35 +31,32 @@ module RSpec::MultiprocessRunner
21
31
  @current_example_groups = []
22
32
  end
23
33
 
24
- def example_group_started(example_group)
25
- super(example_group)
34
+ def example_group_started(notification)
35
+ super(notification)
26
36
 
27
- @current_example_groups.push(example_group.description.strip)
37
+ @current_example_groups.push(notification.group.description.strip)
28
38
  end
29
39
 
30
40
  def example_group_finished(example_group)
31
41
  @current_example_groups.pop
32
42
  end
33
43
 
34
- def example_passed(example)
35
- super(example)
36
- report_example_result(:passed, example)
44
+ def example_passed(notification)
45
+ report_example_result(:passed, notification.example)
37
46
  end
38
47
 
39
- def example_pending(example)
40
- super(example)
41
- details = capture_output { dump_pending }
42
- pending_examples.clear
43
- report_example_result(:pending, example, details)
48
+ def example_pending(notification)
49
+ details = capture_output { super(notification) }
50
+ report_example_result(:pending, notification.example, details)
44
51
  end
45
52
 
46
- def example_failed(example)
47
- super(example)
48
- details = capture_output {
49
- dump_failure_info(example)
50
- dump_backtrace(example)
51
- }
52
- report_example_result(:failed, example, details)
53
+ def example_failed(notification)
54
+ details = capture_output { super(notification) }
55
+ report_example_result(
56
+ :failed,
57
+ notification.example,
58
+ notification.fully_formatted(1)
59
+ )
53
60
  end
54
61
 
55
62
  private
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module MultiprocessRunner
3
- VERSION = "0.4.2"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Rhett Sutphin"]
10
10
  spec.email = ["rhett@detailedbalance.net"]
11
11
 
12
- spec.summary = %q{A runner for RSpec 2 that uses multiple processes to execute specs in parallel}
12
+ spec.summary = %q{A runner for RSpec 3 that uses multiple processes to execute specs in parallel}
13
13
  spec.homepage = "https://github.com/cdd/rspec-multiprocess_runner"
14
14
  spec.license = "MIT"
15
15
 
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rspec-core", "~> 2.0", "< 2.99.0"
21
+ spec.add_dependency "rspec", ">= 2.99"
22
22
 
23
23
  spec.add_development_dependency "bundler", "~> 1.10"
24
+ spec.add_development_dependency "pry"
24
25
  spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rspec"
26
26
  spec.add_development_dependency "stub_env"
27
27
  end
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-multiprocess_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rhett Sutphin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-28 00:00:00.000000000 Z
11
+ date: 2016-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec-core
14
+ name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.0'
20
- - - "<"
17
+ - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 2.99.0
19
+ version: '2.99'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '2.0'
30
- - - "<"
24
+ - - ">="
31
25
  - !ruby/object:Gem::Version
32
- version: 2.99.0
26
+ version: '2.99'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: bundler
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -45,33 +39,33 @@ dependencies:
45
39
  - !ruby/object:Gem::Version
46
40
  version: '1.10'
47
41
  - !ruby/object:Gem::Dependency
48
- name: rake
42
+ name: pry
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - "~>"
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
- version: '10.0'
47
+ version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
- - - "~>"
52
+ - - ">="
59
53
  - !ruby/object:Gem::Version
60
- version: '10.0'
54
+ version: '0'
61
55
  - !ruby/object:Gem::Dependency
62
- name: rspec
56
+ name: rake
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
- - - ">="
59
+ - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: '0'
61
+ version: '10.0'
68
62
  type: :development
69
63
  prerelease: false
70
64
  version_requirements: !ruby/object:Gem::Requirement
71
65
  requirements:
72
- - - ">="
66
+ - - "~>"
73
67
  - !ruby/object:Gem::Version
74
- version: '0'
68
+ version: '10.0'
75
69
  - !ruby/object:Gem::Dependency
76
70
  name: stub_env
77
71
  requirement: !ruby/object:Gem::Requirement
@@ -104,8 +98,10 @@ files:
104
98
  - Rakefile
105
99
  - TODO.md
106
100
  - bin/console
101
+ - bin/generate_manual_specs
107
102
  - bin/setup
108
103
  - exe/multirspec
104
+ - lib/rspec/core/formatters_ext.rb
109
105
  - lib/rspec/multiprocess_runner.rb
110
106
  - lib/rspec/multiprocess_runner/command_line_options.rb
111
107
  - lib/rspec/multiprocess_runner/coordinator.rb
@@ -134,8 +130,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
130
  version: '0'
135
131
  requirements: []
136
132
  rubyforge_project:
137
- rubygems_version: 2.4.5.1
133
+ rubygems_version: 2.4.8
138
134
  signing_key:
139
135
  specification_version: 4
140
- summary: A runner for RSpec 2 that uses multiple processes to execute specs in parallel
136
+ summary: A runner for RSpec 3 that uses multiple processes to execute specs in parallel
141
137
  test_files: []
138
+ has_rdoc: