turbo_tests2 3.1.1 → 3.1.2
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 +17 -3
- data/LICENSE.md +13 -13
- data/README.md +13 -5
- 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 -16
- 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: 3f7e32f7c287251c9f42dc998ba6b717d2977f1f8d741de4f1f0fb774089589b
|
|
4
|
+
data.tar.gz: fffd71116b9ce2d824896c779feaa53d467fece2e8e649074690c9e98752a035
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8b35cc849e52d2c7963fdfa1f51a558261cd7fc0ee00b63c04c7d4d8170fa515aaf0a51717e9bf1fb1bf2e6b2c8eaa19a67f2aac1f9bbbe7ffacdc20140ed4da
|
|
7
|
+
data.tar.gz: d24ee3ba58ec58d7d942d1f9fc5617fa1d12e34efbc8a65dc5a1db52018af5660a287c7f9c08ce207061ba0d71ecc5727506f92b01bbcc80dda112e0251fb547
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/CHANGELOG.md
CHANGED
|
@@ -28,10 +28,22 @@ 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.2] - 2026-06-08
|
|
34
|
+
|
|
35
|
+
- TAG: [v3.1.2][3.1.2t]
|
|
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
|
+
- `turbo_tests2` now generates and reports a global random seed by default,
|
|
43
|
+
passes it to every worker process, and supports `--order defined` /
|
|
44
|
+
`--no-random` for ordered runs without a seed.
|
|
45
|
+
- 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.
|
|
46
|
+
|
|
35
47
|
## [3.1.1] - 2026-06-02
|
|
36
48
|
|
|
37
49
|
- TAG: [v3.1.1][3.1.1t]
|
|
@@ -114,7 +126,9 @@ Please file a bug if you notice a violation of semantic versioning.
|
|
|
114
126
|
|
|
115
127
|
- Initial release
|
|
116
128
|
|
|
117
|
-
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.
|
|
129
|
+
[Unreleased]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.2...HEAD
|
|
130
|
+
[3.1.2]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.1...v3.1.2
|
|
131
|
+
[3.1.2t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.2
|
|
118
132
|
[3.1.1]: https://github.com/galtzo-floss/turbo_tests2/compare/v3.1.0...v3.1.1
|
|
119
133
|
[3.1.1t]: https://github.com/galtzo-floss/turbo_tests2/releases/tag/v3.1.1
|
|
120
134
|
[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
|
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.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Illia
|
|
@@ -92,7 +92,7 @@ dependencies:
|
|
|
92
92
|
version: '1.1'
|
|
93
93
|
- - ">="
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: 1.1.
|
|
95
|
+
version: 1.1.11
|
|
96
96
|
type: :runtime
|
|
97
97
|
prerelease: false
|
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -102,27 +102,27 @@ dependencies:
|
|
|
102
102
|
version: '1.1'
|
|
103
103
|
- - ">="
|
|
104
104
|
- !ruby/object:Gem::Version
|
|
105
|
-
version: 1.1.
|
|
105
|
+
version: 1.1.11
|
|
106
106
|
- !ruby/object:Gem::Dependency
|
|
107
107
|
name: kettle-dev
|
|
108
108
|
requirement: !ruby/object:Gem::Requirement
|
|
109
109
|
requirements:
|
|
110
110
|
- - "~>"
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
|
-
version: '2.
|
|
112
|
+
version: '2.1'
|
|
113
113
|
- - ">="
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
|
-
version: 2.
|
|
115
|
+
version: 2.1.1
|
|
116
116
|
type: :development
|
|
117
117
|
prerelease: false
|
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - "~>"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '2.
|
|
122
|
+
version: '2.1'
|
|
123
123
|
- - ">="
|
|
124
124
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: 2.
|
|
125
|
+
version: 2.1.1
|
|
126
126
|
- !ruby/object:Gem::Dependency
|
|
127
127
|
name: bundler-audit
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -177,20 +177,20 @@ dependencies:
|
|
|
177
177
|
requirements:
|
|
178
178
|
- - "~>"
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '3.
|
|
180
|
+
version: '3.1'
|
|
181
181
|
- - ">="
|
|
182
182
|
- !ruby/object:Gem::Version
|
|
183
|
-
version: 3.
|
|
183
|
+
version: 3.1.1
|
|
184
184
|
type: :development
|
|
185
185
|
prerelease: false
|
|
186
186
|
version_requirements: !ruby/object:Gem::Requirement
|
|
187
187
|
requirements:
|
|
188
188
|
- - "~>"
|
|
189
189
|
- !ruby/object:Gem::Version
|
|
190
|
-
version: '3.
|
|
190
|
+
version: '3.1'
|
|
191
191
|
- - ">="
|
|
192
192
|
- !ruby/object:Gem::Version
|
|
193
|
-
version: 3.
|
|
193
|
+
version: 3.1.1
|
|
194
194
|
- !ruby/object:Gem::Dependency
|
|
195
195
|
name: kettle-test
|
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -200,7 +200,7 @@ dependencies:
|
|
|
200
200
|
version: '2.0'
|
|
201
201
|
- - ">="
|
|
202
202
|
- !ruby/object:Gem::Version
|
|
203
|
-
version: 2.0.
|
|
203
|
+
version: 2.0.3
|
|
204
204
|
type: :development
|
|
205
205
|
prerelease: false
|
|
206
206
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -210,7 +210,7 @@ dependencies:
|
|
|
210
210
|
version: '2.0'
|
|
211
211
|
- - ">="
|
|
212
212
|
- !ruby/object:Gem::Version
|
|
213
|
-
version: 2.0.
|
|
213
|
+
version: 2.0.3
|
|
214
214
|
- !ruby/object:Gem::Dependency
|
|
215
215
|
name: ruby-progressbar
|
|
216
216
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -311,10 +311,10 @@ licenses:
|
|
|
311
311
|
- MIT
|
|
312
312
|
metadata:
|
|
313
313
|
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.
|
|
314
|
+
source_code_uri: https://github.com/galtzo-floss/turbo_tests2/tree/v3.1.2
|
|
315
|
+
changelog_uri: https://github.com/galtzo-floss/turbo_tests2/blob/v3.1.2/CHANGELOG.md
|
|
316
316
|
bug_tracker_uri: https://github.com/galtzo-floss/turbo_tests2/issues
|
|
317
|
-
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.
|
|
317
|
+
documentation_uri: https://www.rubydoc.info/gems/turbo_tests2/3.1.2
|
|
318
318
|
funding_uri: https://github.com/sponsors/pboling
|
|
319
319
|
wiki_uri: https://github.com/galtzo-floss/turbo_tests2/wiki
|
|
320
320
|
news_uri: https://www.railsbling.com/tags/turbo_tests2
|
metadata.gz.sig
CHANGED
|
Binary file
|