rspec-multiprocess_runner 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|