turbo_tests2 3.1.1 → 3.1.3
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
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +30 -3
- data/LICENSE.md +13 -13
- data/README.md +14 -6
- data/SECURITY.md +1 -1
- data/lib/turbo_tests/cli.rb +10 -0
- data/lib/turbo_tests/runner.rb +21 -1
- data/lib/turbo_tests/version.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +16 -17
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cfd673d6ae8cb509b581990ab4fc6290d4108c5e3af0cf8a6e9fffe90cd373dc
|
|
4
|
+
data.tar.gz: d145b26cd8c021afcb4a3bc7c9f4f94d6885ccdd4e8d8da500f7cb9855ba461a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a21f56a935b9189674f79fd83c6acb4426c96c44d9616090dc6b6ebac6d7e020745991e8ba7853e006b3e7005cde2469be0cefc784c6519e338bf9c433a06e08
|
|
7
|
+
data.tar.gz: c94630c64ff389d5e8f1b6ec8ecd2a1d86307581e4bd740d6847449719142dde4557ad601a381d6338ac30a1a6a9d8dd29c0da14cc556ab6814fb86b2246f5b5
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -28,10 +28,33 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
28
28
|
|
|
29
29
|
### Fixed
|
|
30
30
|
|
|
31
|
-
- Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
|
|
32
|
-
|
|
33
31
|
### Security
|
|
34
32
|
|
|
33
|
+
## [3.1.3] - 2026-06-14
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.1.3][3.1.3t]
|
|
36
|
+
- COVERAGE: 94.62% -- 651/688 lines in 16 files
|
|
37
|
+
- BRANCH COVERAGE: 79.33% -- 119/150 branches in 16 files
|
|
38
|
+
- 37.08% documented
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
|
|
43
|
+
|
|
44
|
+
## [3.1.2] - 2026-06-08
|
|
45
|
+
|
|
46
|
+
- TAG: [v3.1.2][3.1.2t]
|
|
47
|
+
- COVERAGE: 94.62% -- 651/688 lines in 16 files
|
|
48
|
+
- BRANCH COVERAGE: 79.33% -- 119/150 branches in 16 files
|
|
49
|
+
- 37.08% documented
|
|
50
|
+
|
|
51
|
+
### Fixed
|
|
52
|
+
|
|
53
|
+
- `turbo_tests2` now generates and reports a global random seed by default,
|
|
54
|
+
passes it to every worker process, and supports `--order defined` /
|
|
55
|
+
`--no-random` for ordered runs without a seed.
|
|
56
|
+
- Worker PID cleanup now uses the `parallel_tests` pid file path captured when the subprocess starts, avoiding JRuby failures after the pid-file environment is restored.
|
|
57
|
+
|
|
35
58
|
## [3.1.1] - 2026-06-02
|
|
36
59
|
|
|
37
60
|
- TAG: [v3.1.1][3.1.1t]
|
|
@@ -114,7 +137,11 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
114
137
|
|
|
115
138
|
- Initial release
|
|
116
139
|
|
|
117
|
-
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.
|
|
140
|
+
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.3...HEAD
|
|
141
|
+
[3.1.3]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.2...v3.1.3
|
|
142
|
+
[3.1.3t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.3
|
|
143
|
+
[3.1.2]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...v3.1.2
|
|
144
|
+
[3.1.2t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.2
|
|
118
145
|
[3.1.1]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.0...v3.1.1
|
|
119
146
|
[3.1.1t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.1
|
|
120
147
|
[3.1.0]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.0.0...v3.1.0
|
data/LICENSE.md
CHANGED
|
@@ -7,16 +7,16 @@ Choose the option that best fits your use case:
|
|
|
7
7
|
|
|
8
8
|
## Copyright Notice
|
|
9
9
|
|
|
10
|
-
Copyright (c) 2020-2023 Illia
|
|
11
|
-
Copyright (c) 2020 Ilya Zub
|
|
12
|
-
Copyright (c) 2021 AMHOL
|
|
13
|
-
Copyright (c) 2021 Serge Bedzhyk
|
|
14
|
-
Copyright (c) 2023 Bo Anderson
|
|
15
|
-
Copyright (c) 2023 Dmitiry Zub☀️
|
|
16
|
-
Copyright (c) 2023-2024 Illia
|
|
17
|
-
Copyright (c) 2023 mrudzki
|
|
18
|
-
Copyright (c) 2023-2024 Sebastien Savater
|
|
19
|
-
Copyright (c) 2024 David Rodriguez
|
|
20
|
-
Copyright (c) 2024 Hiroshi SHIBATA
|
|
21
|
-
Copyright (c) 2025-2026 Gareth Jones
|
|
22
|
-
Copyright (c) 2025-2026 Peter H. Boling
|
|
10
|
+
- Copyright (c) 2020-2023 Illia
|
|
11
|
+
- Copyright (c) 2020 Ilya Zub
|
|
12
|
+
- Copyright (c) 2021 AMHOL
|
|
13
|
+
- Copyright (c) 2021 Serge Bedzhyk
|
|
14
|
+
- Copyright (c) 2023 Bo Anderson
|
|
15
|
+
- Copyright (c) 2023 Dmitiry Zub☀️
|
|
16
|
+
- Copyright (c) 2023-2024 Illia
|
|
17
|
+
- Copyright (c) 2023 mrudzki
|
|
18
|
+
- Copyright (c) 2023-2024 Sebastien Savater
|
|
19
|
+
- Copyright (c) 2024 David Rodriguez
|
|
20
|
+
- Copyright (c) 2024 Hiroshi SHIBATA
|
|
21
|
+
- Copyright (c) 2025-2026 Gareth Jones
|
|
22
|
+
- Copyright (c) 2025-2026 Peter H. Boling
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<a href="https://github.com/galtzo-floss
|
|
1
|
+
<a href="https://github.com/galtzo-floss/turbo_tests2"><img alt="turbo_tests2 Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/galtzo-floss/turbo_tests2/avatar-128px.svg" width="20%" align="right"/></a>
|
|
2
2
|
|
|
3
3
|
# 🚀 TurboTests
|
|
4
4
|
|
|
@@ -181,20 +181,28 @@ Usage: turbo_tests2 [options]
|
|
|
181
181
|
turbo_tests2 spec/bar spec/baz/xxx_spec.rb
|
|
182
182
|
|
|
183
183
|
Options:
|
|
184
|
-
-n [PROCESSES]
|
|
184
|
+
-n, -w, --workers [PROCESSES] How many processes to use, default: available CPUs
|
|
185
185
|
-r, --require PATH Require a file.
|
|
186
186
|
-f, --format FORMATTER Choose a formatter. Available formatters: progress (p), documentation (d). Default: progress
|
|
187
187
|
-t, --tag TAG Run examples with the specified tag.
|
|
188
188
|
-o, --out FILE Write output to a file instead of $stdout
|
|
189
189
|
--runtime-log FILE Location of previously recorded test runtimes
|
|
190
|
+
--example-status-log FILE Use RSpec example status persistence timings for grouping
|
|
190
191
|
-v, --verbose More output
|
|
191
192
|
--fail-fast=[N]
|
|
192
193
|
--seed SEED Seed for rspec
|
|
193
|
-
--
|
|
194
|
+
--order ORDER RSpec example order: random (default) or defined
|
|
195
|
+
--no-random Run examples in defined order without passing a seed
|
|
196
|
+
--create Create databases
|
|
194
197
|
--print_failed_group Prints group that had failures in it
|
|
198
|
+
--nice execute test commands with low priority
|
|
195
199
|
```
|
|
196
200
|
|
|
197
|
-
|
|
201
|
+
By default, `turbo_tests2` generates one random RSpec seed, prints it, and passes
|
|
202
|
+
that same seed to every worker process. Use `--seed SEED` to replay a run, or
|
|
203
|
+
`--order defined` / `--no-random` when you want ordered examples without a seed.
|
|
204
|
+
|
|
205
|
+
To pass any options supported by parallel_tests, use `--`:
|
|
198
206
|
|
|
199
207
|
```bash
|
|
200
208
|
bundle exec turbo_tests2 -n 4 -- --only-group 1 --pattern spec/system
|
|
@@ -644,7 +652,7 @@ Thanks for RTFM. ☺️
|
|
|
644
652
|
[📌gitmoji]: https://gitmoji.dev
|
|
645
653
|
[📌gitmoji-img]: https://img.shields.io/badge/gitmoji_commits-%20%F0%9F%98%9C%20%F0%9F%98%8D-34495e.svg?style=flat-square
|
|
646
654
|
[🧮kloc]: https://www.youtube.com/watch?v=dQw4w9WgXcQ
|
|
647
|
-
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.
|
|
655
|
+
[🧮kloc-img]: https://img.shields.io/badge/KLOC-0.688-FFDD67.svg?style=for-the-badge&logo=YouTube&logoColor=blue
|
|
648
656
|
[🔐security]: https://github.com/galtzo-floss/turbo_tests2/blob/main/SECURITY.md
|
|
649
657
|
[🔐security-img]: https://img.shields.io/badge/security-policy-259D6C.svg?style=flat
|
|
650
658
|
[📄copyright-notice-explainer]: https://opensource.stackexchange.com/questions/5778/why-do-licenses-such-as-the-mit-license-specify-a-single-year
|
|
@@ -672,7 +680,7 @@ Thanks for RTFM. ☺️
|
|
|
672
680
|
| Package | turbo_tests2 |
|
|
673
681
|
| Description | 🚀 turbo_tests2` is a drop-in replacement for `serpapi/turbo_tests` and `grosser/parallel_tests` with incremental summarized output. Source code of `turbo_test2` gem is based on Discourse and Rubygems work in this area (see README.md). |
|
|
674
682
|
| Homepage | https://github.com/galtzo-floss/turbo_tests2 |
|
|
675
|
-
| Source | https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.
|
|
683
|
+
| Source | https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.3 |
|
|
676
684
|
| License | `MIT` |
|
|
677
685
|
| Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/galtzo-floss, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/turbo_tests2, https://www.buymeacoffee.com/pboling |
|
|
678
686
|
<!-- kettle-jem:metadata:end -->
|
data/SECURITY.md
CHANGED
data/lib/turbo_tests/cli.rb
CHANGED
|
@@ -21,6 +21,7 @@ module TurboTests
|
|
|
21
21
|
verbose = false
|
|
22
22
|
fail_fast = nil
|
|
23
23
|
seed = nil
|
|
24
|
+
order = nil
|
|
24
25
|
print_failed_group = false
|
|
25
26
|
create = false
|
|
26
27
|
nice = false
|
|
@@ -99,6 +100,14 @@ module TurboTests
|
|
|
99
100
|
seed = s
|
|
100
101
|
end
|
|
101
102
|
|
|
103
|
+
opts.on("--order ORDER", "RSpec example order: random (default) or defined") do |value|
|
|
104
|
+
order = value
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
opts.on("--no-random", "Run examples in defined order without passing a seed") do
|
|
108
|
+
order = "defined"
|
|
109
|
+
end
|
|
110
|
+
|
|
102
111
|
opts.on("--create", "Create databases") do
|
|
103
112
|
create = true
|
|
104
113
|
end
|
|
@@ -146,6 +155,7 @@ module TurboTests
|
|
|
146
155
|
fail_fast: fail_fast,
|
|
147
156
|
count: count,
|
|
148
157
|
seed: seed,
|
|
158
|
+
order: order,
|
|
149
159
|
nice: nice,
|
|
150
160
|
print_failed_group: print_failed_group,
|
|
151
161
|
parallel_options: parallel_options
|
data/lib/turbo_tests/runner.rb
CHANGED
|
@@ -34,8 +34,10 @@ module TurboTests
|
|
|
34
34
|
verbose = opts.fetch(:verbose, false)
|
|
35
35
|
fail_fast = opts.fetch(:fail_fast, nil)
|
|
36
36
|
count = opts.fetch(:count, nil)
|
|
37
|
+
order = normalize_order(opts.fetch(:order, nil))
|
|
37
38
|
seed = opts.fetch(:seed, nil)
|
|
38
|
-
seed_used =
|
|
39
|
+
seed_used = order != "defined"
|
|
40
|
+
seed = generate_seed if seed_used && seed.nil?
|
|
39
41
|
print_failed_group = opts.fetch(:print_failed_group, false)
|
|
40
42
|
nice = opts.fetch(:nice, false)
|
|
41
43
|
|
|
@@ -67,6 +69,7 @@ module TurboTests
|
|
|
67
69
|
count: count,
|
|
68
70
|
seed: seed,
|
|
69
71
|
seed_used: seed_used,
|
|
72
|
+
order: order,
|
|
70
73
|
print_failed_group: print_failed_group,
|
|
71
74
|
use_runtime_info: use_runtime_info,
|
|
72
75
|
parallel_options: parallel_options,
|
|
@@ -88,6 +91,18 @@ module TurboTests
|
|
|
88
91
|
File.write(path, runtimes.sort.map { |file, runtime| "#{file}:#{runtime}" }.join("\n"))
|
|
89
92
|
path
|
|
90
93
|
end
|
|
94
|
+
|
|
95
|
+
def normalize_order(order)
|
|
96
|
+
order = order.to_s.strip.downcase
|
|
97
|
+
return "random" if order.empty?
|
|
98
|
+
return order if %w[random defined].include?(order)
|
|
99
|
+
|
|
100
|
+
raise ArgumentError, "Unsupported order #{order.inspect}; use random or defined"
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def generate_seed
|
|
104
|
+
(Random.new_seed % 65_535).to_s
|
|
105
|
+
end
|
|
91
106
|
end
|
|
92
107
|
|
|
93
108
|
def initialize(**opts)
|
|
@@ -101,6 +116,7 @@ module TurboTests
|
|
|
101
116
|
@count = opts[:count]
|
|
102
117
|
@seed = opts[:seed]
|
|
103
118
|
@seed_used = opts[:seed_used]
|
|
119
|
+
@order = opts[:order]
|
|
104
120
|
@nice = opts[:nice]
|
|
105
121
|
@use_runtime_info = opts[:use_runtime_info]
|
|
106
122
|
|
|
@@ -241,6 +257,10 @@ module TurboTests
|
|
|
241
257
|
[
|
|
242
258
|
"--seed", @seed
|
|
243
259
|
]
|
|
260
|
+
elsif @order
|
|
261
|
+
[
|
|
262
|
+
"--order", @order
|
|
263
|
+
]
|
|
244
264
|
else
|
|
245
265
|
[]
|
|
246
266
|
end
|
data/lib/turbo_tests/version.rb
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: turbo_tests2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.1.
|
|
4
|
+
version: 3.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Illia
|
|
@@ -10,7 +10,6 @@ authors:
|
|
|
10
10
|
- Serge Bedzhyk
|
|
11
11
|
- Bo Anderson
|
|
12
12
|
- Dmitiry Zub☀️
|
|
13
|
-
- Illia
|
|
14
13
|
- mrudzki
|
|
15
14
|
- Sebastien Savater
|
|
16
15
|
- David Rodriguez
|
|
@@ -92,7 +91,7 @@ dependencies:
|
|
|
92
91
|
version: '1.1'
|
|
93
92
|
- - ">="
|
|
94
93
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 1.1.
|
|
94
|
+
version: 1.1.11
|
|
96
95
|
type: :runtime
|
|
97
96
|
prerelease: false
|
|
98
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -102,27 +101,27 @@ dependencies:
|
|
|
102
101
|
version: '1.1'
|
|
103
102
|
- - ">="
|
|
104
103
|
- !ruby/object:Gem::Version
|
|
105
|
-
version: 1.1.
|
|
104
|
+
version: 1.1.11
|
|
106
105
|
- !ruby/object:Gem::Dependency
|
|
107
106
|
name: kettle-dev
|
|
108
107
|
requirement: !ruby/object:Gem::Requirement
|
|
109
108
|
requirements:
|
|
110
109
|
- - "~>"
|
|
111
110
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: '2.
|
|
111
|
+
version: '2.2'
|
|
113
112
|
- - ">="
|
|
114
113
|
- !ruby/object:Gem::Version
|
|
115
|
-
version: 2.
|
|
114
|
+
version: 2.2.8
|
|
116
115
|
type: :development
|
|
117
116
|
prerelease: false
|
|
118
117
|
version_requirements: !ruby/object:Gem::Requirement
|
|
119
118
|
requirements:
|
|
120
119
|
- - "~>"
|
|
121
120
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '2.
|
|
121
|
+
version: '2.2'
|
|
123
122
|
- - ">="
|
|
124
123
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: 2.
|
|
124
|
+
version: 2.2.8
|
|
126
125
|
- !ruby/object:Gem::Dependency
|
|
127
126
|
name: bundler-audit
|
|
128
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -177,20 +176,20 @@ dependencies:
|
|
|
177
176
|
requirements:
|
|
178
177
|
- - "~>"
|
|
179
178
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '3.
|
|
179
|
+
version: '3.1'
|
|
181
180
|
- - ">="
|
|
182
181
|
- !ruby/object:Gem::Version
|
|
183
|
-
version: 3.
|
|
182
|
+
version: 3.1.2
|
|
184
183
|
type: :development
|
|
185
184
|
prerelease: false
|
|
186
185
|
version_requirements: !ruby/object:Gem::Requirement
|
|
187
186
|
requirements:
|
|
188
187
|
- - "~>"
|
|
189
188
|
- !ruby/object:Gem::Version
|
|
190
|
-
version: '3.
|
|
189
|
+
version: '3.1'
|
|
191
190
|
- - ">="
|
|
192
191
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: 3.
|
|
192
|
+
version: 3.1.2
|
|
194
193
|
- !ruby/object:Gem::Dependency
|
|
195
194
|
name: kettle-test
|
|
196
195
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -200,7 +199,7 @@ dependencies:
|
|
|
200
199
|
version: '2.0'
|
|
201
200
|
- - ">="
|
|
202
201
|
- !ruby/object:Gem::Version
|
|
203
|
-
version: 2.0.
|
|
202
|
+
version: 2.0.5
|
|
204
203
|
type: :development
|
|
205
204
|
prerelease: false
|
|
206
205
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -210,7 +209,7 @@ dependencies:
|
|
|
210
209
|
version: '2.0'
|
|
211
210
|
- - ">="
|
|
212
211
|
- !ruby/object:Gem::Version
|
|
213
|
-
version: 2.0.
|
|
212
|
+
version: 2.0.5
|
|
214
213
|
- !ruby/object:Gem::Dependency
|
|
215
214
|
name: ruby-progressbar
|
|
216
215
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -311,10 +310,10 @@ licenses:
|
|
|
311
310
|
- MIT
|
|
312
311
|
metadata:
|
|
313
312
|
homepage_uri: https://turbo-tests2.galtzo.com
|
|
314
|
-
source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.
|
|
315
|
-
changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.
|
|
313
|
+
source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.3
|
|
314
|
+
changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.3/CHANGELOG.md
|
|
316
315
|
bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
|
|
317
|
-
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.
|
|
316
|
+
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.3
|
|
318
317
|
funding_uri: https://github.com/sponsors/pboling
|
|
319
318
|
wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
|
|
320
319
|
news_uri: https://www.railsbling.com/tags/turbo_tests2
|
metadata.gz.sig
CHANGED
|
Binary file
|