forking_test_runner 1.15.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 +28 -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,15 +1,28 @@
|
|
|
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:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: benchmark
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: 0.5.0
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: 0.5.0
|
|
13
26
|
- !ruby/object:Gem::Dependency
|
|
14
27
|
name: parallel_tests
|
|
15
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -42,22 +55,16 @@ dependencies:
|
|
|
42
55
|
name: bundler
|
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
|
44
57
|
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '2.4'
|
|
48
58
|
- - ">="
|
|
49
59
|
- !ruby/object:Gem::Version
|
|
50
|
-
version:
|
|
60
|
+
version: '0'
|
|
51
61
|
type: :development
|
|
52
62
|
prerelease: false
|
|
53
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
54
64
|
requirements:
|
|
55
|
-
- - "~>"
|
|
56
|
-
- !ruby/object:Gem::Version
|
|
57
|
-
version: '2.4'
|
|
58
65
|
- - ">="
|
|
59
66
|
- !ruby/object:Gem::Version
|
|
60
|
-
version:
|
|
67
|
+
version: '0'
|
|
61
68
|
- !ruby/object:Gem::Dependency
|
|
62
69
|
name: drb
|
|
63
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -90,16 +97,16 @@ dependencies:
|
|
|
90
97
|
name: minitest
|
|
91
98
|
requirement: !ruby/object:Gem::Requirement
|
|
92
99
|
requirements:
|
|
93
|
-
- - "
|
|
100
|
+
- - "~>"
|
|
94
101
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0'
|
|
102
|
+
version: '6.0'
|
|
96
103
|
type: :development
|
|
97
104
|
prerelease: false
|
|
98
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
99
106
|
requirements:
|
|
100
|
-
- - "
|
|
107
|
+
- - "~>"
|
|
101
108
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0'
|
|
109
|
+
version: '6.0'
|
|
103
110
|
- !ruby/object:Gem::Dependency
|
|
104
111
|
name: mutex_m
|
|
105
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -160,17 +167,16 @@ dependencies:
|
|
|
160
167
|
name: sqlite3
|
|
161
168
|
requirement: !ruby/object:Gem::Requirement
|
|
162
169
|
requirements:
|
|
163
|
-
- - "
|
|
170
|
+
- - ">="
|
|
164
171
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
172
|
+
version: '0'
|
|
166
173
|
type: :development
|
|
167
174
|
prerelease: false
|
|
168
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
169
176
|
requirements:
|
|
170
|
-
- - "
|
|
177
|
+
- - ">="
|
|
171
178
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '
|
|
173
|
-
description:
|
|
179
|
+
version: '0'
|
|
174
180
|
email: michael@grosser.it
|
|
175
181
|
executables:
|
|
176
182
|
- forking-test-runner
|
|
@@ -187,7 +193,6 @@ homepage: https://github.com/grosser/forking_test_runner
|
|
|
187
193
|
licenses:
|
|
188
194
|
- MIT
|
|
189
195
|
metadata: {}
|
|
190
|
-
post_install_message:
|
|
191
196
|
rdoc_options: []
|
|
192
197
|
require_paths:
|
|
193
198
|
- lib
|
|
@@ -195,15 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
195
200
|
requirements:
|
|
196
201
|
- - ">="
|
|
197
202
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: 3.
|
|
203
|
+
version: 3.2.0
|
|
199
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
205
|
requirements:
|
|
201
206
|
- - ">="
|
|
202
207
|
- !ruby/object:Gem::Version
|
|
203
208
|
version: '0'
|
|
204
209
|
requirements: []
|
|
205
|
-
rubygems_version: 3.
|
|
206
|
-
signing_key:
|
|
210
|
+
rubygems_version: 3.6.9
|
|
207
211
|
specification_version: 4
|
|
208
212
|
summary: Run every test in a fork to avoid pollution and get clean output per test
|
|
209
213
|
test_files: []
|