parallel_tests 3.7.3 → 3.8.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/parallel_tests/cli.rb +2 -2
- 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/pids.rb +2 -2
- data/lib/parallel_tests/tasks.rb +33 -9
- data/lib/parallel_tests/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e3e1a135eda0167339276ebde8bbdc6c0620c83d08b36ca150cb19b2651bd18
|
4
|
+
data.tar.gz: 759e3dd86a759cb2217f82b2b92bdc0e83e11d6e1d17cb7226d37eaa6c7ebade
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 825d480ce774744fd4caa2fc5016be513384385ca88fc14b90552efef04041b45912246aa26557217d3f09e4810fc85ac4634381aadfcf0e0375ed4413c50557
|
7
|
+
data.tar.gz: f927123ce02a41fadd99ab7045aad0e00464488c81d2cf2567e47180909c36be2d220d3c5192fbb0820f4f6c89ac29fc33f23368be5cb702d1aa55f66f419da8
|
data/lib/parallel_tests/cli.rb
CHANGED
@@ -322,12 +322,12 @@ module ParallelTests
|
|
322
322
|
def extract_file_paths(argv)
|
323
323
|
dash_index = argv.rindex("--")
|
324
324
|
file_args_at = (dash_index || -1) + 1
|
325
|
-
[argv[file_args_at
|
325
|
+
[argv[file_args_at..], argv[0...(dash_index || 0)]]
|
326
326
|
end
|
327
327
|
|
328
328
|
def extract_test_options(argv)
|
329
329
|
dash_index = argv.index("--") || -1
|
330
|
-
argv[dash_index + 1
|
330
|
+
argv[dash_index + 1..]
|
331
331
|
end
|
332
332
|
|
333
333
|
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) }
|
data/lib/parallel_tests/pids.rb
CHANGED
@@ -43,14 +43,14 @@ module ParallelTests
|
|
43
43
|
|
44
44
|
def read
|
45
45
|
sync do
|
46
|
-
contents =
|
46
|
+
contents = File.read(file_path)
|
47
47
|
return if contents.empty?
|
48
48
|
@pids = JSON.parse(contents)
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
def save
|
53
|
-
sync {
|
53
|
+
sync { File.write(file_path, pids.to_json) }
|
54
54
|
end
|
55
55
|
|
56
56
|
def sync(&block)
|
data/lib/parallel_tests/tasks.rb
CHANGED
@@ -92,6 +92,32 @@ module ParallelTests
|
|
92
92
|
|
93
93
|
[num_processes, pattern.to_s, options.to_s, pass_through.to_s]
|
94
94
|
end
|
95
|
+
|
96
|
+
def schema_format_based_on_rails_version
|
97
|
+
if rails_7_or_greater?
|
98
|
+
ActiveRecord.schema_format
|
99
|
+
else
|
100
|
+
ActiveRecord::Base.schema_format
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
def schema_type_based_on_rails_version
|
105
|
+
if rails_61_or_greater? || schema_format_based_on_rails_version == :ruby
|
106
|
+
"schema"
|
107
|
+
else
|
108
|
+
"structure"
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
private
|
113
|
+
|
114
|
+
def rails_7_or_greater?
|
115
|
+
Gem::Version.new(Rails.version) >= Gem::Version.new('7.0')
|
116
|
+
end
|
117
|
+
|
118
|
+
def rails_61_or_greater?
|
119
|
+
Gem::Version.new(Rails.version) >= Gem::Version.new('6.1.0')
|
120
|
+
end
|
95
121
|
end
|
96
122
|
end
|
97
123
|
end
|
@@ -121,14 +147,10 @@ namespace :parallel do
|
|
121
147
|
desc "Update test databases by dumping and loading --> parallel:prepare[num_cpus]"
|
122
148
|
task(:prepare, [:count]) do |_, args|
|
123
149
|
ParallelTests::Tasks.check_for_pending_migrations
|
124
|
-
|
150
|
+
|
151
|
+
if defined?(ActiveRecord) && [:ruby, :sql].include?(ParallelTests::Tasks.schema_format_based_on_rails_version)
|
125
152
|
# fast: dump once, load in parallel
|
126
|
-
type =
|
127
|
-
if Gem::Version.new(Rails.version) >= Gem::Version.new('6.1.0')
|
128
|
-
"schema"
|
129
|
-
else
|
130
|
-
ActiveRecord::Base.schema_format == :ruby ? "schema" : "structure"
|
131
|
-
end
|
153
|
+
type = ParallelTests::Tasks.schema_type_based_on_rails_version
|
132
154
|
|
133
155
|
Rake::Task["db:#{type}:dump"].invoke
|
134
156
|
|
@@ -163,7 +185,8 @@ namespace :parallel do
|
|
163
185
|
# just load the schema (good for integration server <-> no development db)
|
164
186
|
desc "Load dumped schema for test databases via db:schema:load --> parallel:load_schema[num_cpus]"
|
165
187
|
task :load_schema, :count do |_, args|
|
166
|
-
command =
|
188
|
+
command =
|
189
|
+
"#{ParallelTests::Tasks.rake_bin} #{ParallelTests::Tasks.purge_before_load} " \
|
167
190
|
"db:schema:load RAILS_ENV=#{ParallelTests::Tasks.rails_env} DISABLE_DATABASE_ENVIRONMENT_CHECK=1"
|
168
191
|
ParallelTests::Tasks.run_in_parallel(ParallelTests::Tasks.suppress_schema_load_output(command), args)
|
169
192
|
end
|
@@ -211,7 +234,8 @@ namespace :parallel do
|
|
211
234
|
# Using the relative path to find the binary allow to run a specific version of it
|
212
235
|
executable = File.join(File.dirname(__FILE__), '..', '..', 'bin', 'parallel_test')
|
213
236
|
|
214
|
-
command =
|
237
|
+
command =
|
238
|
+
"#{ParallelTests.with_ruby_binary(Shellwords.escape(executable))} #{type} " \
|
215
239
|
"--type #{test_framework} " \
|
216
240
|
"-n #{count} " \
|
217
241
|
"--pattern '#{pattern}' " \
|
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: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Grosser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: parallel
|
@@ -68,8 +68,8 @@ 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/v3.
|
72
|
-
source_code_uri: https://github.com/grosser/parallel_tests/tree/v3.
|
71
|
+
documentation_uri: https://github.com/grosser/parallel_tests/blob/v3.8.0/Readme.md
|
72
|
+
source_code_uri: https://github.com/grosser/parallel_tests/tree/v3.8.0
|
73
73
|
wiki_uri: https://github.com/grosser/parallel_tests/wiki
|
74
74
|
post_install_message:
|
75
75
|
rdoc_options: []
|
@@ -79,14 +79,14 @@ 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.
|
89
|
+
rubygems_version: 3.1.6
|
90
90
|
signing_key:
|
91
91
|
specification_version: 4
|
92
92
|
summary: Run Test::Unit / RSpec / Cucumber / Spinach in parallel
|