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 +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +4 -0
- data/bin/generate_manual_specs +19 -0
- data/lib/rspec/core/formatters_ext.rb +23 -0
- data/lib/rspec/multiprocess_runner/reporting_formatter.rb +26 -19
- data/lib/rspec/multiprocess_runner/version.rb +1 -1
- data/rspec-multiprocess_runner.gemspec +3 -3
- metadata +22 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a247cd59b3face52efbad2cea055cbee9c672fcb
|
4
|
+
data.tar.gz: c8d69b7425a8eb1b72e4a7bdad6fd1591aa6b8e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89cec8329b963461fb01765e9a5f67b7e28dbff8ecaa75148928dded50086ae5044edc61740cf8c9a51fc10666e9fbc11acd3a89aa1ef9d2ac3a8b9da442880f
|
7
|
+
data.tar.gz: d25d42871728d8847605035daaed5b45e49fad4a4664ce55d40d4a588909756ba435301b9c7631306acef836e4163f03c04105a5c8e2ee10bbee1bd67e28eb71
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -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::
|
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(
|
25
|
-
super(
|
34
|
+
def example_group_started(notification)
|
35
|
+
super(notification)
|
26
36
|
|
27
|
-
@current_example_groups.push(
|
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(
|
35
|
-
|
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(
|
40
|
-
super(
|
41
|
-
|
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(
|
47
|
-
super(
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
@@ -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
|
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
|
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
|
+
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-
|
11
|
+
date: 2016-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: rspec
|
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
|
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
|
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:
|
42
|
+
name: pry
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
|
-
- - "
|
45
|
+
- - ">="
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
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: '
|
54
|
+
version: '0'
|
61
55
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
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.
|
133
|
+
rubygems_version: 2.4.8
|
138
134
|
signing_key:
|
139
135
|
specification_version: 4
|
140
|
-
summary: A runner for RSpec
|
136
|
+
summary: A runner for RSpec 3 that uses multiple processes to execute specs in parallel
|
141
137
|
test_files: []
|
138
|
+
has_rdoc:
|