parallel_tests 3.12.1 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parallel_tests/cli.rb +5 -6
- data/lib/parallel_tests/cucumber/scenario_line_logger.rb +1 -1
- data/lib/parallel_tests/gherkin/runner.rb +1 -1
- data/lib/parallel_tests/grouper.rb +1 -1
- data/lib/parallel_tests/test/runner.rb +8 -3
- data/lib/parallel_tests/version.rb +1 -1
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcf9040fbe779832d8f04c064321136d832b115d493353ba3e5efa473a02a774
|
4
|
+
data.tar.gz: f9179c53e375db68d53d2c9136b1cc36567ebeb143ad85a44f185d3ccf91a90c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 80a68d9b21660e5f0294730cc42a591f13a1f9b75b0e1d6649ab94be5a1dacb48c3fef1dac8e0733abc08a01b063d917a05f6dd791b2887a20921139dc87bde3
|
7
|
+
data.tar.gz: 0b0f70fdff83e0fd14594d4a6eaa99d7576bafb746d2c5a6913d3bfca6d7c6cf9d4a11098e7593102a007bddf8345a3ddf6ac712eeef2647e7a6f699cfb2d37f
|
data/lib/parallel_tests/cli.rb
CHANGED
@@ -131,12 +131,12 @@ module ParallelTests
|
|
131
131
|
failing_sets = test_results.reject { |r| r[:exit_status] == 0 }
|
132
132
|
return if failing_sets.none?
|
133
133
|
|
134
|
-
if options[:verbose] || options[:
|
134
|
+
if options[:verbose] || options[:verbose_command]
|
135
135
|
puts "\n\nTests have failed for a parallel_test group. Use the following command to run the group again:\n\n"
|
136
136
|
failing_sets.each do |failing_set|
|
137
137
|
command = failing_set[:command]
|
138
138
|
command = @runner.command_with_seed(command, failing_set[:seed]) if failing_set[:seed]
|
139
|
-
|
139
|
+
@runner.print_command(command, failing_set[:env] || {})
|
140
140
|
end
|
141
141
|
end
|
142
142
|
end
|
@@ -261,8 +261,7 @@ module ParallelTests
|
|
261
261
|
opts.on("--first-is-1", "Use \"1\" as TEST_ENV_NUMBER to not reuse the default test environment") { options[:first_is_1] = true }
|
262
262
|
opts.on("--fail-fast", "Stop all groups when one group fails (best used with --test-options '--fail-fast' if supported") { options[:fail_fast] = true }
|
263
263
|
opts.on("--verbose", "Print debug output") { options[:verbose] = true }
|
264
|
-
opts.on("--verbose-
|
265
|
-
opts.on("--verbose-rerun-command", "When there are failures, displays the command executed by each process that failed") { options[:verbose_rerun_command] = true }
|
264
|
+
opts.on("--verbose-command", "Displays the command that will be executed by each process and when there are failures displays the command executed by each process that failed") { options[:verbose_command] = true }
|
266
265
|
opts.on("--quiet", "Print only tests output") { options[:quiet] = true }
|
267
266
|
opts.on("-v", "--version", "Show Version") do
|
268
267
|
puts ParallelTests::VERSION
|
@@ -316,12 +315,12 @@ module ParallelTests
|
|
316
315
|
def extract_file_paths(argv)
|
317
316
|
dash_index = argv.rindex("--")
|
318
317
|
file_args_at = (dash_index || -1) + 1
|
319
|
-
[argv[file_args_at
|
318
|
+
[argv[file_args_at..], argv[0...(dash_index || 0)]]
|
320
319
|
end
|
321
320
|
|
322
321
|
def extract_test_options(argv)
|
323
322
|
dash_index = argv.index("--") || -1
|
324
|
-
argv[dash_index + 1
|
323
|
+
argv[dash_index + 1..]
|
325
324
|
end
|
326
325
|
|
327
326
|
def append_test_options(options, argv)
|
@@ -27,7 +27,7 @@ module ParallelTests
|
|
27
27
|
example_tags = example.tags.map(&:name)
|
28
28
|
example_tags = scenario_tags + example_tags
|
29
29
|
next unless matches_tags?(example_tags)
|
30
|
-
example.rows[1
|
30
|
+
example.rows[1..].each do |row|
|
31
31
|
test_line = row.source_line
|
32
32
|
next if line_numbers.any? && !line_numbers.include?(test_line)
|
33
33
|
|
@@ -38,7 +38,7 @@ module ParallelTests
|
|
38
38
|
# add all files that should run in a multiple isolated processes to their own groups
|
39
39
|
group_features_by_size(items_to_group(single_items), groups[0..(isolate_count - 1)])
|
40
40
|
# group the non-isolated by size
|
41
|
-
group_features_by_size(items_to_group(items), groups[isolate_count
|
41
|
+
group_features_by_size(items_to_group(items), groups[isolate_count..])
|
42
42
|
else
|
43
43
|
# add all files that should run in a single non-isolated process to first group
|
44
44
|
single_items.each { |item, size| add_to_group(groups.first, item, size) }
|
@@ -97,11 +97,16 @@ module ParallelTests
|
|
97
97
|
# being able to run with for example `-output foo-$TEST_ENV_NUMBER` worked originally and is convenient
|
98
98
|
cmd.map! { |c| c.gsub("$TEST_ENV_NUMBER", number).gsub("${TEST_ENV_NUMBER}", number) }
|
99
99
|
|
100
|
-
|
100
|
+
print_command(cmd, env) if report_process_command?(options) && !options[:serialize_stdout]
|
101
101
|
|
102
102
|
execute_command_and_capture_output(env, cmd, options)
|
103
103
|
end
|
104
104
|
|
105
|
+
def print_command(command, env)
|
106
|
+
env_str = ['TEST_ENV_NUMBER', 'PARALLEL_TEST_GROUPS'].map { |e| "#{e}=#{env[e]}" }.join(' ')
|
107
|
+
puts [env_str, Shellwords.shelljoin(command)].compact.join(' ')
|
108
|
+
end
|
109
|
+
|
105
110
|
def execute_command_and_capture_output(env, cmd, options)
|
106
111
|
pid = nil
|
107
112
|
|
@@ -119,7 +124,7 @@ module ParallelTests
|
|
119
124
|
|
120
125
|
output = "#{Shellwords.shelljoin(cmd)}\n#{output}" if report_process_command?(options) && options[:serialize_stdout]
|
121
126
|
|
122
|
-
{ stdout: output, exit_status: exitstatus, command: cmd, seed: seed }
|
127
|
+
{ env: env, stdout: output, exit_status: exitstatus, command: cmd, seed: seed }
|
123
128
|
end
|
124
129
|
|
125
130
|
def find_results(test_output)
|
@@ -286,7 +291,7 @@ module ParallelTests
|
|
286
291
|
end
|
287
292
|
|
288
293
|
def report_process_command?(options)
|
289
|
-
options[:verbose] || options[:
|
294
|
+
options[:verbose] || options[:verbose_command]
|
290
295
|
end
|
291
296
|
end
|
292
297
|
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
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
description:
|
27
|
+
description:
|
28
28
|
email: michael@grosser.it
|
29
29
|
executables:
|
30
30
|
- parallel_spinach
|
@@ -68,10 +68,10 @@ licenses:
|
|
68
68
|
- MIT
|
69
69
|
metadata:
|
70
70
|
bug_tracker_uri: https://github.com/grosser/parallel_tests/issues
|
71
|
-
documentation_uri: https://github.com/grosser/parallel_tests/blob/
|
72
|
-
source_code_uri: https://github.com/grosser/parallel_tests/tree/
|
71
|
+
documentation_uri: https://github.com/grosser/parallel_tests/blob/v4.0.0/Readme.md
|
72
|
+
source_code_uri: https://github.com/grosser/parallel_tests/tree/v4.0.0
|
73
73
|
wiki_uri: https://github.com/grosser/parallel_tests/wiki
|
74
|
-
post_install_message:
|
74
|
+
post_install_message:
|
75
75
|
rdoc_options: []
|
76
76
|
require_paths:
|
77
77
|
- lib
|
@@ -79,15 +79,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.
|
82
|
+
version: 2.7.0
|
83
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
85
|
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
|
-
rubygems_version: 3.
|
90
|
-
signing_key:
|
89
|
+
rubygems_version: 3.3.3
|
90
|
+
signing_key:
|
91
91
|
specification_version: 4
|
92
92
|
summary: Run Test::Unit / RSpec / Cucumber / Spinach in parallel
|
93
93
|
test_files: []
|