only add here if you are working on a PR
- no longer dump schema during parallel:prepare to mirror what rails does
- 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
- allow writing to a different runtime log for minitest
- Rake tasks will prioritize the
PARALLEL_RAILS_ENVvalue over the defaulttestenvironment
- The
--multiply-processesoption was being parsed intooptions[:multiply-processes]but was being referenced asoptions[:multiply]in the code
- The
--exec-argsoption, which allows users to run shell commands in parallel with test files as arguments
- The
specify-groupsoption supports reading from STDIN when set to-
- Restored jruby support by restoring ruby 3.1 support
- Fix Cucumber failures logger when a runner doesn't have any failed examples
- dropped ruby 3.0 and 3.1, added ruby 3.4
- reverted determine_number_of_processes rename since that broke dependencies
- Allow processor multiplier (flag:
-mor--multiply-processes) to be set via the environment variablePARALLEL_TEST_MULTIPLY_PROCESSES
- Fix output of Cucumber failures logger. Previously, an event handler inherited from
Cucumber::Formatter::Rerunwould improperly join failures (e.g.feature/one.feature:1feature/two.feature:1). Now failures are separated with a single space.
- check ActiveRecord version instead of Rails
- add --test-file-limit option for huge windows setups that breaks command length limit
- Restore support for passing custom command lines as PARALLEL_TESTS_EXECUTABLE.
- dropped ruby 2.7 support
- Restored the
--verbose-process-commandand--verbose-rerun-commandoptions, removed in version 4.0.0. See #952.--verbose-commandcontinues to be supported and is equivalent to set the 2 options above.
- 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.
- The
--allow-duplicatesflag now runs duplicate tests in different groups
- Add
--allow-duplicatesflag to support re-running 1 spec multiple times
- do not crash when a pid file was already deleted when trying to delete it
Rails 5.2 and gherkin fixes
- Support for running tasks against individual databases in a multi-database setup with Rails >= 6.1 (#930)
- Sort the output of
runtime_loggerfor RSpec to show slowest tests first - Add new
ParallelTests::RSpec::VerboseLoggerto output detailed information about each example and it's process as it starts and finishes.
- Support for RSpec turnip feature files.
- Drop support for RSpec 2.
- Document unexpected behavior where the
--only-groupflag will also set a grouping strategy.
- Fix $TEST_ENV_NUMBER replacing code to not affect all processes (#905)
- Remove duplicate raise codes. (#897)
- Avoid double sending int while also not breaking debugging #891
- Avoid double sending of SIGINT to subprocesses #889
- The
--verbose-process-commandand--verbose-rerun-commandare combined into--verbose-command. See #884. - Drop ruby 2.6 support
- Drop support for ruby 2.5
--quietno longer prints 'Using recorded test runtime'
- Grouping by scenarios now works for tests that are nested under Rules.
- Raise a custom
RuntimeLogTooSmallErrorexception when the runtime log is too small instead of a genericRuntimeError.
- Running rake tasks with number of processes or extra args
- Changed Rake subtasks to always use the same Rake executable as the parent process.
- Fixed
NoMethodErrorexception when running Rake taskparallel:setup.
- Subprocesses execute without a shell.
- Support Ruby 2.5 / 2.6
- Drop support for ruby 2.5 / 2.6
- Tested on ruby 3.0 and 3.1
- Added Rails 7.0 to fixtures
- Fixes deprecation warning around the usage of
ActiveRecord::Base.schema_formatand deprecation in Rails 7.1
- None
- None
- All cucumber options are now pushed to the end of the command invocation
- Fixes an issue where the
--retryflag wouldn't work correctly
- Fixes an issue where the
- None
- Added
--highest-exit-statusoption to return the highest exit status to allow sub-processes to send things other than 1
- None
- Drop ruby 2.4 support
- Run default test folder if no arguments are passed.
- None
- None
- None
- Do not use db:structure for rails 6.1
- None
- Add support for specifying exactly how isolated processes run tests with 'specify-groups' option.
- Refactorings for rubocop
- None
- None
- Colorize summarized RSpec results.(#787).
- replace deprecated db:structure by db:schema (#801).
- Added support for multiple isolated processes.
- RAILS_ENV cannot be specified for rake tasks (#776).
- None
- Rake tasks will no longer run against development environment when using a Spring-ified rake binstub (#776).
--fail-faststops all groups if one group fails. Can be used to stop all groups if one test failed by usingfail-fastin the test-framework too (for example rspec via--test-options '--fail-fast'or in.rspec_parallel).
- The
--group-byflag with valuestepsandfeaturesnow requires end users to add thecuke_modelergem to their Gemfile (#762).
- Cucumber 4 support (#762)
- Fix a bundler deprecation when running specs (#761)
- remove name override logic that never worked (#758)
- Drop ruby 2.3 support (#760)
- Drop ruby 2.2 support (#759)
- Calculate unknown runtimes lazily when running tests grouped by runtime (#750).
- File paths passed from the CLI are now cleaned (consecutive slashes and useless dots removed) (#748).
- Add project metadata to gemspec (#739).
- Fix bundler deprecation warning related to
bundle show) (#744). - Fix numerous flakey tests (#736, #741).
- Support db:structure:dump and load structure in parallel (#732).
- Add note to the README about using the spring-commands-parallel-tests gem to automatically patch and enable Spring (#731).
- Refactor logic in the
parallel:preparetask (#737). - Update README to use :sql schema format.
- Fix loading of the
versionfile when using a local git repo with Bundler (#730).
- Eliminate some ruby warnings relating to ambiguous arguments, unused variables, a redefined method, and uninitialized instance variables (#712).
- Fix NameError due to not requiring
shellwords(#707).
--verbose-process-command, which prints the command that will be executed by each process before it begins (#697).--verbose-rerun-command, which prints the command executed by that process after a process fails (#697).
simulate_output_for_cinow outputs dots (.) even after the first parallel thread finishes (#673).
- Typo in CLI options (#672).
- Support for new Cucumber tag expressions syntax (#668).
db:test:purgeis nowdb:purgeso it can be used in any environment, not just thetestenvironment. This change is backwards compatible. (#665).- Tests against Rails 5.1 and 5.2 ([#663])(#663)).
- Update formatter to use Cucumber events API instead of deprecated API (#664)
- Commands and their respective outputs are now grouped together when using the
verboseandserialize-outputflags together (#660).
- Improve accuracy when recording example times (#661).
- Dropped support for Ruby 2.0 (#661).
- Rake task now passes through additional arguments to the CLI (#656).
No docs yet. Contributions welcome!