parallel_tests 4.3.0 → 4.4.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/Readme.md +28 -6
- data/lib/parallel_tests/rspec/runtime_logger.rb +2 -0
- data/lib/parallel_tests/rspec/verbose_logger.rb +62 -0
- data/lib/parallel_tests/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf9a4f09819ff1193b0f02d9148f72d7b12e4c2efc2ca4e5e7981eb6959ebfef
|
4
|
+
data.tar.gz: f86bdeb95cb93b8d8d79a81727e719014a481c18520da973480ff44d6828ffdb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 549401be10742522594fbd9f9ba1eb657c7689c13be3f9034bb7ee78225a7b86cf127b83d1f16cac932b639cfec92ecac9644e8aff9aa488b39e3980eb23ff6c
|
7
|
+
data.tar.gz: ad909f442e744a869bc4db59b9bf2bc9b3559e888f2d017cee58fa51b4d8563f5dc9123d6ce48317fe65f56e7d6f4f4d89c56274960d14ec1befbe5e3cabcc2d
|
data/Readme.md
CHANGED
@@ -106,11 +106,13 @@ at_exit do
|
|
106
106
|
end
|
107
107
|
```
|
108
108
|
|
109
|
-
Even test group
|
110
|
-
|
109
|
+
Even test group runtimes
|
110
|
+
========================
|
111
111
|
|
112
|
-
Test groups
|
113
|
-
|
112
|
+
Test groups will often run for different times, making the full test run as slow as the slowest group.
|
113
|
+
|
114
|
+
Step 1: Use these loggers (see below) to record test runtime
|
115
|
+
Step 2: Your next run will use the recorded test runtimes (use `--runtime-log <file>` if you picked a location different from below)
|
114
116
|
|
115
117
|
### RSpec
|
116
118
|
|
@@ -128,9 +130,11 @@ Add to your `test_helper.rb`:
|
|
128
130
|
require 'parallel_tests/test/runtime_logger' if ENV['RECORD_RUNTIME']
|
129
131
|
```
|
130
132
|
|
131
|
-
results will be logged to tmp/parallel_runtime_test.log when `RECORD_RUNTIME` is set,
|
133
|
+
results will be logged to `tmp/parallel_runtime_test.log` when `RECORD_RUNTIME` is set,
|
132
134
|
so it is not always required or overwritten.
|
133
135
|
|
136
|
+
### TODO: add instructions for other frameworks
|
137
|
+
|
134
138
|
Loggers
|
135
139
|
=======
|
136
140
|
|
@@ -147,7 +151,7 @@ Add the following to your `.rspec_parallel` (or `.rspec`) :
|
|
147
151
|
RSpec: FailuresLogger
|
148
152
|
-----------------------
|
149
153
|
|
150
|
-
Produce
|
154
|
+
Produce pasteable command-line snippets for each failed example. For example:
|
151
155
|
|
152
156
|
```bash
|
153
157
|
rspec /path/to/my_spec.rb:123 # should do something
|
@@ -160,6 +164,24 @@ Add to `.rspec_parallel` or use as CLI flag:
|
|
160
164
|
|
161
165
|
(Not needed to retry failures, for that pass [--only-failures](https://relishapp.com/rspec/rspec-core/docs/command-line/only-failures) to rspec)
|
162
166
|
|
167
|
+
|
168
|
+
RSpec: VerboseLogger
|
169
|
+
-----------------------
|
170
|
+
|
171
|
+
Prints a single line for starting and finishing each example, to see what is currently running in each process.
|
172
|
+
|
173
|
+
```
|
174
|
+
# PID, parallel process number, spec status, example description
|
175
|
+
[14403] [2] [STARTED] Foo foo
|
176
|
+
[14402] [1] [STARTED] Bar bar
|
177
|
+
[14402] [1] [PASSED] Bar bar
|
178
|
+
```
|
179
|
+
|
180
|
+
Add to `.rspec_parallel` or use as CLI flag:
|
181
|
+
|
182
|
+
--format ParallelTests::RSpec::VerboseLogger
|
183
|
+
|
184
|
+
|
163
185
|
Cucumber: FailuresLogger
|
164
186
|
-----------------------
|
165
187
|
|
@@ -36,6 +36,8 @@ class ParallelTests::RSpec::RuntimeLogger < ParallelTests::RSpec::LoggerBase
|
|
36
36
|
def start_dump(*)
|
37
37
|
return unless ENV['TEST_ENV_NUMBER'] # only record when running in parallel
|
38
38
|
lock_output do
|
39
|
+
# Order the output from slowest to fastest
|
40
|
+
@example_times = @example_times.sort_by(&:last).reverse
|
39
41
|
@example_times.each do |file, time|
|
40
42
|
relative_path = file.sub(%r{^#{Regexp.escape Dir.pwd}/}, '').sub(%r{^\./}, "")
|
41
43
|
@output.puts "#{relative_path}:#{[time, 0].max}"
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rspec/core/formatters/base_text_formatter'
|
4
|
+
require 'parallel_tests/rspec/runner'
|
5
|
+
|
6
|
+
class ParallelTests::RSpec::VerboseLogger < RSpec::Core::Formatters::BaseTextFormatter
|
7
|
+
RSpec::Core::Formatters.register(
|
8
|
+
self,
|
9
|
+
:example_group_started,
|
10
|
+
:example_group_finished,
|
11
|
+
:example_started,
|
12
|
+
:example_passed,
|
13
|
+
:example_pending,
|
14
|
+
:example_failed
|
15
|
+
)
|
16
|
+
|
17
|
+
def initialize(output)
|
18
|
+
super
|
19
|
+
@line = []
|
20
|
+
end
|
21
|
+
|
22
|
+
def example_group_started(notification)
|
23
|
+
@line.push(notification.group.description)
|
24
|
+
end
|
25
|
+
|
26
|
+
def example_group_finished(_notification)
|
27
|
+
@line.pop
|
28
|
+
end
|
29
|
+
|
30
|
+
def example_started(notification)
|
31
|
+
@line.push(notification.example.description)
|
32
|
+
output_formatted_line('STARTED', :yellow)
|
33
|
+
end
|
34
|
+
|
35
|
+
def example_passed(_passed)
|
36
|
+
output_formatted_line('PASSED', :success)
|
37
|
+
@line.pop
|
38
|
+
end
|
39
|
+
|
40
|
+
def example_pending(_pending)
|
41
|
+
output_formatted_line('PENDING', :pending)
|
42
|
+
@line.pop
|
43
|
+
end
|
44
|
+
|
45
|
+
def example_failed(_failure)
|
46
|
+
output_formatted_line('FAILED', :failure)
|
47
|
+
@line.pop
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def output_formatted_line(status, console_code)
|
53
|
+
prefix = ["[#{Process.pid}]"]
|
54
|
+
if ENV.include?('TEST_ENV_NUMBER')
|
55
|
+
test_env_number = ENV['TEST_ENV_NUMBER'] == '' ? 1 : Integer(ENV['TEST_ENV_NUMBER'])
|
56
|
+
prefix << "[#{test_env_number}]"
|
57
|
+
end
|
58
|
+
prefix << RSpec::Core::Formatters::ConsoleCodes.wrap("[#{status}]", console_code)
|
59
|
+
|
60
|
+
output.puts [*prefix, *@line].join(' ')
|
61
|
+
end
|
62
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_tests
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- lib/parallel_tests/rspec/runner.rb
|
59
59
|
- lib/parallel_tests/rspec/runtime_logger.rb
|
60
60
|
- lib/parallel_tests/rspec/summary_logger.rb
|
61
|
+
- lib/parallel_tests/rspec/verbose_logger.rb
|
61
62
|
- lib/parallel_tests/spinach/runner.rb
|
62
63
|
- lib/parallel_tests/tasks.rb
|
63
64
|
- lib/parallel_tests/test/runner.rb
|
@@ -68,8 +69,8 @@ licenses:
|
|
68
69
|
- MIT
|
69
70
|
metadata:
|
70
71
|
bug_tracker_uri: https://github.com/grosser/parallel_tests/issues
|
71
|
-
documentation_uri: https://github.com/grosser/parallel_tests/blob/v4.
|
72
|
-
source_code_uri: https://github.com/grosser/parallel_tests/tree/v4.
|
72
|
+
documentation_uri: https://github.com/grosser/parallel_tests/blob/v4.4.0/Readme.md
|
73
|
+
source_code_uri: https://github.com/grosser/parallel_tests/tree/v4.4.0
|
73
74
|
wiki_uri: https://github.com/grosser/parallel_tests/wiki
|
74
75
|
post_install_message:
|
75
76
|
rdoc_options: []
|