# Changelog ## Unreleased only add here if you are working on a PR ### Breaking Changes ### Added ### Fixed ## 5.8.0 - 2026-09-13 ### Added - Adds flag `--only-group-continuous-test-env` that sets `ENV['TEST_ENV_NUMBER']` to match the current `--only-group` GROUP_INDEX ## 5.7.0 - 2026-04-09 ### Changed - no longer dump schema during parallel:prepare to mirror what rails does ## 5.6.0 - 2026-02-05 ### Fixed - Fixed grammar in duration message to use singular "second" when appropriate (e.g., "Took 1 second" instead of "Took 1 seconds") - Return correct exit status when process was terminated ## 5.5.0 - 2025-10-30 ## Added - allow writing to a different runtime log for minitest ## 5.4.0 - 2025-08-01 ### Added - Rake tasks will prioritize the `PARALLEL_RAILS_ENV` value over the default `test` environment ## 5.3.1 - 2025-07-23 ### Fixed - The `--multiply-processes` option was being parsed into `options[:multiply-processes]` but was being referenced as `options[:multiply]` in the code ## 5.3.0 - 2025-05-30 ### Added - The `--exec-args` option, which allows users to run shell commands in parallel with test files as arguments ## 5.2.0 - 2025-05-08 ### Added - The `specify-groups` option supports reading from STDIN when set to `-` ## 5.1.0 - 2025-03-09 ### Fixed - Restored jruby support by restoring ruby 3.1 support ## 5.0.1 - 2025-03-05 ### Fixed - Fix Cucumber failures logger when a runner doesn't have any failed examples ## 5.0.0 - 2025-03-01 ### Breaking Changes - dropped ruby 3.0 and 3.1, added ruby 3.4 ## 4.10.1 - 2025-03-01 ### Fixed - reverted determine_number_of_processes rename since that broke dependencies ## 4.10.0 - 2025-02-28 ### Added - Allow processor multiplier (flag: `-m` or `--multiply-processes`) to be set via the environment variable `PARALLEL_TEST_MULTIPLY_PROCESSES` ## 4.9.1 - 2025-02-19 ### Fixed - Fix output of Cucumber failures logger. Previously, an event handler inherited from `Cucumber::Formatter::Rerun` would improperly join failures (e.g. `feature/one.feature:1feature/two.feature:1`). Now failures are separated with a single space. ## 4.9.0 - 2025-01-09 ### Fixed - check ActiveRecord version instead of Rails ## 4.8.0 - 2025-01-03 ### Added - add --test-file-limit option for huge windows setups that breaks command length limit ## 4.7.2 - 2024-09-09 ### Fixed - Restore support for passing custom command lines as PARALLEL_TESTS_EXECUTABLE. - dropped ruby 2.7 support ## 4.7.1 - 2024-04-25 ### Added - Restored the `--verbose-process-command` and `--verbose-rerun-command` options, removed in version 4.0.0. See [#952](https://github.com/grosser/parallel_tests/pull/952). `--verbose-command` continues to be supported and is equivalent to set the 2 options above. ## 4.7.0 - 2024-04-23 ### Added - Added `--failure-exit-code [INT]` flag to specify a custom exit code when tests fail. This option allows users to define a specific exit code that the test suite should return if any tests fail. ## 4.6.1 - 2024-04-03 ### Fixed - The `--allow-duplicates` flag now runs duplicate tests in different groups ## 4.6.0 - 2024-03-25 ## Added - Add `--allow-duplicates` flag to support re-running 1 spec multiple times ## 4.5.2 - 2024-02-16 ### Fixed - do not crash when a pid file was already deleted when trying to delete it ## 4.5.1 - 2024-02-16 ### Fixed Rails 5.2 and gherkin fixes ## 4.5.0 - 2024-02-06 ### Added - Support for running tasks against individual databases in a multi-database setup with Rails >= 6.1 ([#930](https://github.com/grosser/parallel_tests/pull/930)) ## 4.4.0 - 2023-12-24 ### Added - Sort the output of `runtime_logger` for RSpec to show slowest tests first - Add new `ParallelTests::RSpec::VerboseLogger` to output detailed information about each example and it's process as it starts and finishes. ## 4.3.0 - 2023-10-08 ### Added - Support for RSpec turnip feature files. ## 4.2.2 - 2023-09-05 ### Breaking Changes - Drop support for RSpec 2. ### Added - Document unexpected behavior where the `--only-group` flag will also set a grouping strategy. ## 4.2.1 - 2023-05-05 ### Fixed - Fix $TEST_ENV_NUMBER replacing code to not affect all processes (#905) - Remove duplicate raise codes. (#897) ## 4.2.0 - 2023-02-06 ### Fixed - Avoid double sending int while also not breaking debugging [#891](https://github.com/grosser/parallel_tests/pull/891) ## 4.1.0 - 2023-01-14 ### Fixed - Avoid double sending of SIGINT to subprocesses [#889](https://github.com/grosser/parallel_tests/pull/889) ## 4.0.0 - 2022-11-05 ### Breaking Changes - The `--verbose-process-command` and `--verbose-rerun-command` are combined into `--verbose-command`. See [#884](https://github.com/grosser/parallel_tests/pull/884). - Drop ruby 2.6 support ## 3.13.0 - 2022-09-23 ### Changed - Drop support for ruby 2.5 ## v3.12.1 - 2022-09-12 ### Fixed - `--quiet` no longer prints 'Using recorded test runtime' ## v3.12.0 - 2022-08-30 ### Fixed - Grouping by scenarios now works for tests that are nested under Rules. ## 3.11.0 - 2022-05-27 ### Changed - Raise a custom `RuntimeLogTooSmallError` exception when the runtime log is too small instead of a generic `RuntimeError`. ## 3.10.1 - 2022-05-23 ### Fixed - Running rake tasks with number of processes or extra args ## 3.10.0 - 2022-05-23 ### Added - Changed Rake subtasks to always use the same Rake executable as the parent process. ## 3.9.1 - 2022-05-23 ### Fixed - Fixed `NoMethodError` exception when running Rake task `parallel:setup`. ## 3.9.0 - 2022-05-22 ### Added - Subprocesses execute without a shell. ## 3.8.1 - 2022-03-28 ### Added - Support Ruby 2.5 / 2.6 ## 3.8.0 - 2022-03-26 ### Breaking Changes - Drop support for ruby 2.5 / 2.6 ### Added - Tested on ruby 3.0 and 3.1 ### Fixed - Added Rails 7.0 to fixtures - Fixes deprecation warning around the usage of `ActiveRecord::Base.schema_format` and deprecation in Rails 7.1 ## v3.7.1 - 2021-08-14 ### Breaking Changes - None ### Added - None ### Fixed - All cucumber options are now pushed to the end of the command invocation - Fixes an issue where the `--retry` flag wouldn't work correctly ## v3.7.0 - 2021-04-08 ### Breaking Changes - None ### Added - Added `--highest-exit-status` option to return the highest exit status to allow sub-processes to send things other than 1 ### Fixed - None ## v3.6.0 - 2021-03-25 ### Breaking Changes - Drop ruby 2.4 support ### Added - Run default test folder if no arguments are passed. ### Fixed - None ## v3.5.1 - 2021-03-07 ### Breaking Changes - None ### Added - None ### Fixed - Do not use db:structure for rails 6.1 ## v3.5.0 - 2021-02-24 ### Breaking Changes - None ### Added - Add support for specifying exactly how isolated processes run tests with 'specify-groups' option. - Refactorings for rubocop ### Fixed - None ## v3.4.0 - 2020-12-24 ### Breaking Changes - None ### Added - Colorize summarized RSpec results.([#787](https://github.com/grosser/parallel_tests/pull/787)). ### Fixed - replace deprecated db:structure by db:schema (#801). ## 3.3.0 - 2020-09-16 ### Added - Added support for multiple isolated processes. ## 3.2.0 - 2020-08-27 ### Breaking Changes - RAILS_ENV cannot be specified for rake tasks (#776). ### Added - None ### Fixed - Rake tasks will no longer run against development environment when using a Spring-ified rake binstub (#776). ## 3.1.0 - 2020-07-23 ### Added - `--fail-fast` stops all groups if one group fails. Can be used to stop all groups if one test failed by using `fail-fast` in the test-framework too (for example rspec via `--test-options '--fail-fast'` or in `.rspec_parallel`). ## 3.0.0 - 2020-06-10 ### Breaking Changes - The `--group-by` flag with value `steps` and `features` now requires end users to add the `cuke_modeler` gem to their Gemfile (#762). ### Added - Cucumber 4 support (#762) ### Fixed - Fix a bundler deprecation when running specs (#761) - remove name override logic that never worked (#758) ### Dependencies - Drop ruby 2.3 support (#760) - Drop ruby 2.2 support (#759) ## 2.32.0 - 2020-03-15 ### Fixed - Calculate unknown runtimes lazily when running tests grouped by runtime ([#750](https://github.com/grosser/parallel_tests/pull/750)). ## 2.31.0 - 2020-01-31 ### Fixed - File paths passed from the CLI are now cleaned (consecutive slashes and useless dots removed) ([#748](https://github.com/grosser/parallel_tests/pull/748)). ## 2.30.1 - 2020-01-14 ### Added - Add project metadata to gemspec ([#739](https://github.com/grosser/parallel_tests/pull/739)). ## Fixed - Fix bundler deprecation warning related to `bundle show`) ([#744](https://github.com/grosser/parallel_tests/pull/744)). - Fix numerous flakey tests ([#736](https://github.com/grosser/parallel_tests/pull/736), [#741](https://github.com/grosser/parallel_tests/pull/741)). ## 2.30.0 - 2019-12-10 ### Added - Support db:structure:dump and load structure in parallel ([#732](ht.tps://github.com/grosser/parallel_tests/pull/732)). - Add note to the README about using the spring-commands-parallel-tests gem to automatically patch and enable Spring ([#731](https://github.com/grosser/parallel_tests/pull/731)). ### Fixed - Refactor logic in the `parallel:prepare` task ([#737](https://github.com/grosser/parallel_tests/pull/737)). - Update README to use :sql schema format. - Fix loading of the `version` file when using a local git repo with Bundler ([#730](https://github.com/grosser/parallel_tests/pull/730)). ## 2.29.2 - 2019-08-06 ### Fixed - Eliminate some ruby warnings relating to ambiguous arguments, unused variables, a redefined method, and uninitialized instance variables ([#712](https://github.com/grosser/parallel_tests/pull/712)). ## 2.29.1 - 2019-06-13 ### Fixed - Fix NameError due to not requiring `shellwords` ([#707](https://github.com/grosser/parallel_tests/pull/707)). ## 2.29.0 - 2019-05-04 ### Added - `--verbose-process-command`, which prints the command that will be executed by each process before it begins ([#697](https://github.com/grosser/parallel_tests/pull/697/files)). - `--verbose-rerun-command`, which prints the command executed by that process after a process fails ([#697](https://github.com/grosser/parallel_tests/pull/697/files)). ## 2.28.0 - 2019-02-07 ### Added - `exclude-pattern`, which excludes tests matching the passed in regex pattern ([#682](https://github.com/grosser/parallel_tests/pull/682), [#683](https://github.com/grosser/parallel_tests/pull/683)). ## 2.27.1 - 2019-01-01 ### Changed - `simulate_output_for_ci` now outputs dots (`.`) even after the first parallel thread finishes ([#673](https://github.com/grosser/parallel_tests/pull/673)). ### Fixed - Typo in CLI options ([#672](https://github.com/grosser/parallel_tests/pull/672)). ## 2.27.0 - 2018-11-09 ### Added - Support for new Cucumber tag expressions syntax ([#668](https://github.com/grosser/parallel_tests/pull/668)). ## 2.26.2 - 2018-10-29 ### Added - `db:test:purge` is now `db:purge` so it can be used in any environment, not just the `test` environment. This change is backwards compatible. ([#665](https://github.com/grosser/parallel_tests/pull/665)). - Tests against Rails 5.1 and 5.2 ([#663])(https://github.com/grosser/parallel_tests/pull/663)). ## 2.26.0 - 2018-10-25 ### Fixed - Update formatter to use Cucumber events API instead of deprecated API ([#664](https://github.com/grosser/parallel_tests/pull/664)) ## 2.25.0 - 2018-10-24 ### Fixed - Commands and their respective outputs are now grouped together when using the `verbose` and `serialize-output` flags together ([#660](https://github.com/grosser/parallel_tests/pull/660)). ### Dependencies - Dropped support for MiniTest 4 and Test-Unit ([#662](https://github.com/grosser/parallel_tests/pull/662)). - Dropped support for Ruby 2.1 ([#659](https://github.com/grosser/parallel_tests/pull/659)) ## 2.24.0 - 2018-10-24 ### Fixed - Improve accuracy when recording example times ([#661](https://github.com/grosser/parallel_tests/pull/661)). ### Dependencies - Dropped support for Ruby 2.0 ([#661](https://github.com/grosser/parallel_tests/pull/661)). ## 2.23.0 - 2018-09-14 ### Added - Rake task now passes through additional arguments to the CLI ([#656](https://github.com/grosser/parallel_tests/pull/656)). ## Previous versions No docs yet. Contributions welcome!