forking_test_runner 1.16.0 → 1.17.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/lib/forking_test_runner/cli.rb +23 -17
- data/lib/forking_test_runner/version.rb +1 -1
- data/lib/forking_test_runner.rb +2 -2
- metadata +14 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0d794c30f5c802d8bc7ac54e9f904df97920f75731f9df22f141e74a09bcf138
|
|
4
|
+
data.tar.gz: 5b80cdb62e641794f436babb17619c0ad680f93ed50878c38066b1e4d5104655
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ecc5203c6a7c9249c83008b799fa773b7f53c40ceed7a88cb7e4bf49316d08a40b8535ee9e926521e230ef2d8cfa9b8c7317bdd473b6aff70188109f10ada905
|
|
7
|
+
data.tar.gz: 7f6832e31114fb564aa6af927dd091f1caf8c7cb09b87410db06d6a9f63779e38630f75fb21a8dd3b54eb5f65137aa347c5948b4c0157ef399effab44a0ee8ed
|
|
@@ -11,16 +11,16 @@ module ForkingTestRunner
|
|
|
11
11
|
[:merge_coverage, "--merge-coverage", "Merge base code coverage into individual files coverage and summarize coverage report"],
|
|
12
12
|
[
|
|
13
13
|
:record_runtime,
|
|
14
|
-
"--record-runtime
|
|
14
|
+
"--record-runtime MODE",
|
|
15
15
|
"\n Record test runtime:\n " \
|
|
16
16
|
"simple = write to disk at --runtime-log)\n " \
|
|
17
17
|
"amend = write from multiple remote workers via http://github.com/grosser/amend, needs TRAVIS_REPO_SLUG & TRAVIS_BUILD_NUMBER",
|
|
18
18
|
String
|
|
19
19
|
],
|
|
20
|
-
[:runtime_log, "--runtime-log
|
|
21
|
-
[:parallel, "--parallel
|
|
22
|
-
[:group, "--group
|
|
23
|
-
[:groups, "--groups
|
|
20
|
+
[:runtime_log, "--runtime-log FILE", "File to store runtime log in or runtime.log", String],
|
|
21
|
+
[:parallel, "--parallel NUM", "Number of parallel groups to run at once", Integer],
|
|
22
|
+
[:group, "--group NUM[,NUM]", "What group this is (use with --groups / starts at 1)", String],
|
|
23
|
+
[:groups, "--groups NUM", "How many groups there are in total (use with --group)", Integer],
|
|
24
24
|
[:version, "--version", "Show version"],
|
|
25
25
|
[:help, "--help", "Show help"]
|
|
26
26
|
].freeze
|
|
@@ -28,7 +28,7 @@ module ForkingTestRunner
|
|
|
28
28
|
class << self
|
|
29
29
|
def parse_options(argv)
|
|
30
30
|
options = OPTIONS.each_with_object({}) do |(setting, flag, _, type), all|
|
|
31
|
-
all[setting] = delete_argv(flag.split('
|
|
31
|
+
all[setting] = delete_argv(flag.split(' ', 2)[0], argv, type: type)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
# show version
|
|
@@ -76,18 +76,24 @@ module ForkingTestRunner
|
|
|
76
76
|
# so minitest / rspec can read their own options (--seed / -v ...)
|
|
77
77
|
# - keep our options clear / unambiguous to avoid overriding
|
|
78
78
|
# - read all serial non-flag arguments as tests and leave only unknown options behind
|
|
79
|
-
# - use .fetch everywhere to make sure nothing is misspelled
|
|
80
|
-
# GOOD: test --ours --theirs
|
|
81
|
-
# OK: --ours test --theirs
|
|
82
|
-
# BAD: --theirs test --ours
|
|
83
79
|
def delete_argv(name, argv, type: nil)
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
80
|
+
if type # value needed
|
|
81
|
+
value =
|
|
82
|
+
if (index = argv.index(name)) # user used `--foo bar` style ?
|
|
83
|
+
argv.delete_at(index)
|
|
84
|
+
argv.delete_at(index) || raise(ArgumentError, "Missing argument for #{name}")
|
|
85
|
+
else # user used `--foo=bar` style ?
|
|
86
|
+
prefix = "#{name}="
|
|
87
|
+
return unless (index = argv.index { |arg| arg.start_with?(prefix) })
|
|
88
|
+
argv.delete_at(index).delete_prefix(prefix)
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
send(type.name, value) # for example Integer(found)
|
|
92
|
+
else # no value needed
|
|
93
|
+
if (index = argv.index(name))
|
|
94
|
+
argv.delete_at(index)
|
|
95
|
+
true
|
|
96
|
+
end
|
|
91
97
|
end
|
|
92
98
|
end
|
|
93
99
|
end
|
data/lib/forking_test_runner.rb
CHANGED
|
@@ -344,8 +344,8 @@ module ForkingTestRunner
|
|
|
344
344
|
tests = ParallelTests::Test::Runner.send(
|
|
345
345
|
:tests_with_size,
|
|
346
346
|
tests,
|
|
347
|
-
runtime_log
|
|
348
|
-
group_by:
|
|
347
|
+
runtime_log: runtime_log,
|
|
348
|
+
group_by: group_by
|
|
349
349
|
)
|
|
350
350
|
groups = ParallelTests::Grouper.in_even_groups_by_size(tests, group_count, {})
|
|
351
351
|
group = groups[group - 1] || raise("Group #{group} not found")
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: forking_test_runner
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.17.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Grosser
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: benchmark
|
|
@@ -56,22 +55,16 @@ dependencies:
|
|
|
56
55
|
name: bundler
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '2.4'
|
|
62
58
|
- - ">="
|
|
63
59
|
- !ruby/object:Gem::Version
|
|
64
|
-
version:
|
|
60
|
+
version: '0'
|
|
65
61
|
type: :development
|
|
66
62
|
prerelease: false
|
|
67
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
64
|
requirements:
|
|
69
|
-
- - "~>"
|
|
70
|
-
- !ruby/object:Gem::Version
|
|
71
|
-
version: '2.4'
|
|
72
65
|
- - ">="
|
|
73
66
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
67
|
+
version: '0'
|
|
75
68
|
- !ruby/object:Gem::Dependency
|
|
76
69
|
name: drb
|
|
77
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -104,16 +97,16 @@ dependencies:
|
|
|
104
97
|
name: minitest
|
|
105
98
|
requirement: !ruby/object:Gem::Requirement
|
|
106
99
|
requirements:
|
|
107
|
-
- - "
|
|
100
|
+
- - "~>"
|
|
108
101
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0'
|
|
102
|
+
version: '6.0'
|
|
110
103
|
type: :development
|
|
111
104
|
prerelease: false
|
|
112
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
113
106
|
requirements:
|
|
114
|
-
- - "
|
|
107
|
+
- - "~>"
|
|
115
108
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0'
|
|
109
|
+
version: '6.0'
|
|
117
110
|
- !ruby/object:Gem::Dependency
|
|
118
111
|
name: mutex_m
|
|
119
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -174,17 +167,16 @@ dependencies:
|
|
|
174
167
|
name: sqlite3
|
|
175
168
|
requirement: !ruby/object:Gem::Requirement
|
|
176
169
|
requirements:
|
|
177
|
-
- - "
|
|
170
|
+
- - ">="
|
|
178
171
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '
|
|
172
|
+
version: '0'
|
|
180
173
|
type: :development
|
|
181
174
|
prerelease: false
|
|
182
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
183
176
|
requirements:
|
|
184
|
-
- - "
|
|
177
|
+
- - ">="
|
|
185
178
|
- !ruby/object:Gem::Version
|
|
186
|
-
version: '
|
|
187
|
-
description:
|
|
179
|
+
version: '0'
|
|
188
180
|
email: michael@grosser.it
|
|
189
181
|
executables:
|
|
190
182
|
- forking-test-runner
|
|
@@ -201,7 +193,6 @@ homepage: https://github.com/grosser/forking_test_runner
|
|
|
201
193
|
licenses:
|
|
202
194
|
- MIT
|
|
203
195
|
metadata: {}
|
|
204
|
-
post_install_message:
|
|
205
196
|
rdoc_options: []
|
|
206
197
|
require_paths:
|
|
207
198
|
- lib
|
|
@@ -209,15 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
209
200
|
requirements:
|
|
210
201
|
- - ">="
|
|
211
202
|
- !ruby/object:Gem::Version
|
|
212
|
-
version: 3.
|
|
203
|
+
version: 3.2.0
|
|
213
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
205
|
requirements:
|
|
215
206
|
- - ">="
|
|
216
207
|
- !ruby/object:Gem::Version
|
|
217
208
|
version: '0'
|
|
218
209
|
requirements: []
|
|
219
|
-
rubygems_version: 3.
|
|
220
|
-
signing_key:
|
|
210
|
+
rubygems_version: 3.6.9
|
|
221
211
|
specification_version: 4
|
|
222
212
|
summary: Run every test in a fork to avoid pollution and get clean output per test
|
|
223
213
|
test_files: []
|