parallel_tests 3.13.0 → 4.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63c2880760c8b795a2a94c066a5ae23f78c505f53da40ce5de8c1df4af9b1e7b
4
- data.tar.gz: 17de345e57e4c7e4fe50853e7abb70729ce6ed0e462afadb4888f04e43968f1e
3
+ metadata.gz: 9b91b9c7df92f61cb86647c6de3553e21b0f9119081969d1e1689fb6466e0e4b
4
+ data.tar.gz: 970e0840ca122f4d1a5c7db0a03aa58d253afbe5a38a42b55d5224cd77feea4b
5
5
  SHA512:
6
- metadata.gz: c137d503fc2ec276aada0a1c1d8308220d3cb639a206fea97d7bad30d34bb911ad914cf4ac87bd8244442cf0ef5f473355f2a440d6bcdf885751af3ae3ec681a
7
- data.tar.gz: 10e46d3162dad7f87e341fb1cfbcd257857e7dedda21e3805851811c7b81c9e0e952ad6863d307381cf8b8fd8e3f6960148e2dd57ed7091a0d4717dc81a9dd79
6
+ metadata.gz: f510fb8f38ba485412aaa65bfab46f1696a91f9ef8d28499da128c598de0aa2ff1542c55c333d9e694c275f06b4eebfbcc770e0e54ea2266b15ceb504881bb59
7
+ data.tar.gz: 82db6c31fffe3f8faa40e20808e2e6fbd7834d6ad29500f0abf5c58e6aaf1515bb7e358b11f53eef6d1c01f3f541373964721c1c30d66fdb1f2b46a9e5d2f44c
data/Readme.md CHANGED
@@ -1,8 +1,7 @@
1
1
  # parallel_tests
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/parallel_tests.svg)](https://rubygems.org/gems/parallel_tests)
4
- [![Build Status](https://travis-ci.org/grosser/parallel_tests.svg)](https://travis-ci.org/grosser/parallel_tests/builds)
5
- [![Build status](https://github.com/grosser/parallel_tests/workflows/windows/badge.svg)](https://github.com/grosser/parallel_tests/actions?query=workflow%3Awindows)
4
+ [![Build status](https://github.com/grosser/parallel_tests/workflows/test/badge.svg)](https://github.com/grosser/parallel_tests/actions?query=workflow%3Atest)
6
5
 
7
6
  Speedup Test::Unit + RSpec + Cucumber + Spinach by running parallel on multiple CPU cores.<br/>
8
7
  ParallelTests splits tests into even groups (by number of lines or runtime) and runs each group in a single process with its own database.
@@ -404,6 +403,7 @@ inspired by [pivotal labs](https://blog.pivotal.io/labs/labs/parallelize-your-rs
404
403
  - [Zach Dennis](https://github.com/zdennis)
405
404
  - [Jon Dufresne](https://github.com/jdufresne)
406
405
  - [Eric Kessler](https://github.com/enkessler)
406
+ - [Adis Osmonov](https://github.com/adis-io)
407
407
 
408
408
  [Michael Grosser](http://grosser.it)<br/>
409
409
  michael@grosser.it<br/>
@@ -131,12 +131,12 @@ module ParallelTests
131
131
  failing_sets = test_results.reject { |r| r[:exit_status] == 0 }
132
132
  return if failing_sets.none?
133
133
 
134
- if options[:verbose] || options[:verbose_rerun_command]
134
+ if options[:verbose] || options[:verbose_command]
135
135
  puts "\n\nTests have failed for a parallel_test group. Use the following command to run the group again:\n\n"
136
136
  failing_sets.each do |failing_set|
137
137
  command = failing_set[:command]
138
138
  command = @runner.command_with_seed(command, failing_set[:seed]) if failing_set[:seed]
139
- puts Shellwords.shelljoin(command)
139
+ @runner.print_command(command, failing_set[:env] || {})
140
140
  end
141
141
  end
142
142
  end
@@ -261,8 +261,7 @@ module ParallelTests
261
261
  opts.on("--first-is-1", "Use \"1\" as TEST_ENV_NUMBER to not reuse the default test environment") { options[:first_is_1] = true }
262
262
  opts.on("--fail-fast", "Stop all groups when one group fails (best used with --test-options '--fail-fast' if supported") { options[:fail_fast] = true }
263
263
  opts.on("--verbose", "Print debug output") { options[:verbose] = true }
264
- opts.on("--verbose-process-command", "Displays only the command that will be executed by each process") { options[:verbose_process_command] = true }
265
- opts.on("--verbose-rerun-command", "When there are failures, displays the command executed by each process that failed") { options[:verbose_rerun_command] = true }
264
+ opts.on("--verbose-command", "Displays the command that will be executed by each process and when there are failures displays the command executed by each process that failed") { options[:verbose_command] = true }
266
265
  opts.on("--quiet", "Print only tests output") { options[:quiet] = true }
267
266
  opts.on("-v", "--version", "Show Version") do
268
267
  puts ParallelTests::VERSION
@@ -97,15 +97,20 @@ module ParallelTests
97
97
  # being able to run with for example `-output foo-$TEST_ENV_NUMBER` worked originally and is convenient
98
98
  cmd.map! { |c| c.gsub("$TEST_ENV_NUMBER", number).gsub("${TEST_ENV_NUMBER}", number) }
99
99
 
100
- puts Shellwords.shelljoin(cmd) if report_process_command?(options) && !options[:serialize_stdout]
100
+ print_command(cmd, env) if report_process_command?(options) && !options[:serialize_stdout]
101
101
 
102
102
  execute_command_and_capture_output(env, cmd, options)
103
103
  end
104
104
 
105
+ def print_command(command, env)
106
+ env_str = ['TEST_ENV_NUMBER', 'PARALLEL_TEST_GROUPS'].map { |e| "#{e}=#{env[e]}" }.join(' ')
107
+ puts [env_str, Shellwords.shelljoin(command)].compact.join(' ')
108
+ end
109
+
105
110
  def execute_command_and_capture_output(env, cmd, options)
106
111
  pid = nil
107
112
 
108
- popen_options = {}
113
+ popen_options = { pgroup: true }
109
114
  popen_options[:err] = [:child, :out] if options[:combine_stderr]
110
115
 
111
116
  output = IO.popen(env, cmd, popen_options) do |io|
@@ -119,7 +124,7 @@ module ParallelTests
119
124
 
120
125
  output = "#{Shellwords.shelljoin(cmd)}\n#{output}" if report_process_command?(options) && options[:serialize_stdout]
121
126
 
122
- { stdout: output, exit_status: exitstatus, command: cmd, seed: seed }
127
+ { env: env, stdout: output, exit_status: exitstatus, command: cmd, seed: seed }
123
128
  end
124
129
 
125
130
  def find_results(test_output)
@@ -286,7 +291,7 @@ module ParallelTests
286
291
  end
287
292
 
288
293
  def report_process_command?(options)
289
- options[:verbose] || options[:verbose_process_command]
294
+ options[:verbose] || options[:verbose_command]
290
295
  end
291
296
  end
292
297
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ParallelTests
3
- VERSION = '3.13.0'
3
+ VERSION = '4.1.0'
4
4
  end
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.13.0
4
+ version: 4.1.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: 2022-09-24 00:00:00.000000000 Z
11
+ date: 2023-01-15 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.13.0/Readme.md
72
- source_code_uri: https://github.com/grosser/parallel_tests/tree/v3.13.0
71
+ documentation_uri: https://github.com/grosser/parallel_tests/blob/v4.1.0/Readme.md
72
+ source_code_uri: https://github.com/grosser/parallel_tests/tree/v4.1.0
73
73
  wiki_uri: https://github.com/grosser/parallel_tests/wiki
74
74
  post_install_message:
75
75
  rdoc_options: []
@@ -79,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 2.6.0
82
+ version: 2.7.0
83
83
  required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  requirements:
85
85
  - - ">="