A summary of data about the Ruby ecosystem.

https://github.com/grosser/parallel_tests

Ruby: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber
https://github.com/grosser/parallel_tests

Keywords from Contributors

activerecord mvc activejob rspec rubygems crash-reporting rubocop cucumber static-code-analysis code-formatter

Last synced: about 6 hours ago
JSON representation

Repository metadata

Ruby: 2 CPUs = 2x Testing Speed for RSpec, Test::Unit and Cucumber

Readme.md

parallel_tests

Gem Version
Build status

Speedup Minitest + RSpec + Turnip + Cucumber + Spinach by running parallel on multiple CPU cores.
ParallelTests splits tests into balanced groups (by number of lines or runtime) and runs each group in a process with its own database.

Setup for Rails

RailsCasts episode #413 Fast Tests

Install

Gemfile:

gem 'parallel_tests', group: [:development, :test]

Add to config/database.yml

ParallelTests uses 1 database per test-process.

test:
  database: yourproject_test<%= ENV['TEST_ENV_NUMBER'] %>

Create additional database(s)

rake parallel:create

(Multi-DB) Create individual database

rake parallel:create:<database>
rake parallel:create:secondary

Copy development schema (repeat after migrations)

rake parallel:prepare

Run migrations in additional database(s) (repeat after migrations)

rake parallel:migrate

(Multi-DB) Run migrations in individual database

rake parallel:migrate:<database>

Setup environment from scratch (create db and loads schema, useful for CI)

rake parallel:setup

Drop all test databases

rake parallel:drop

(Multi-DB) Drop individual test database

rake parallel:drop:<database>

Run!

rake parallel:test          # Minitest
rake parallel:spec          # RSpec
rake parallel:features      # Cucumber
rake parallel:features-spinach       # Spinach

rake "parallel:test[1]" --> force 1 CPU --> 86 seconds
rake parallel:test    --> got 2 CPUs? --> 47 seconds
rake parallel:test    --> got 4 CPUs? --> 26 seconds
...

Test by pattern with Regex (e.g. use one integration server per subfolder / see if you broke any 'user'-related tests)

rake "parallel:test[^test/unit]" # every test file in test/unit folder
rake "parallel:test[user]"  # run users_controller + user_helper + user tests
rake "parallel:test['user|product']"  # run user and product related tests
rake "parallel:spec['spec\/(?!features)']" # run RSpec tests except the tests in spec/features

Example output

2 processes for 210 specs, ~ 105 specs per process
... test output ...

843 examples, 0 failures, 1 pending

Took 29.925333 seconds

Run an arbitrary task in parallel

RAILS_ENV=test parallel_test -e "rake my:custom:task"
# or
rake "parallel:rake[my:custom:task]"
# limited parallelism
rake "parallel:rake[my:custom:task,2]"

Running setup or teardown once

require "parallel_tests"

# preparation:
# affected by race-condition: first process may boot slower than the second
# the Process.ppid will be the pod of the process that started the parallel tests
# when not using TEST_ENV_NUMBER we use a unique file per process because ppid would be the users shell
done = "/tmp/parallel-setup-done-#{ENV['TEST_ENV_NUMBER'] ? Process.ppid : Process.pid}"
if ParallelTests.first_process?
  do_something
  File.write done, "true"
else
  sleep 0.1 until File.exist?(done)
end

# cleanup:
# could also use last_process? but that is just the last process to start, not the last to finish
at_exit do
  if ParallelTests.first_process?
     File.unlink done
     ParallelTests.wait_for_other_processes_to_finish
     undo_something
  end
end

Even test group runtimes

Test groups will often run for different times, making the full test run as slow as the slowest group.

Step 1: Use these loggers (see below) to record test runtime

Step 2: The next test run will use the recorded test runtimes (use --runtime-log <file> if you wrote to a location different from default)

Step 3: Automate upload/download of test runtime from your CI system example (chunks need to be combined, an alternative is amend)

RSpec

Rspec: Add to your .rspec_parallel (or .rspec), but can also be used via --test-options='--format x':

--format progress
--format ParallelTests::RSpec::RuntimeLogger --out tmp/parallel_runtime_rspec.log

Minitest

Add to your test_helper.rb:

if ENV['RECORD_RUNTIME']
   require 'parallel_tests/test/runtime_logger'
   # ParallelTests::Test::RuntimeLogger.logfile = "tmp/parallel_runtime_test.log" # where to write it
end

results will be logged when RECORD_RUNTIME is set, so it is not always required or overwritten.

Loggers

RSpec: SummaryLogger

Log the test output without the different processes overwriting each other.

Add the following to your .rspec_parallel (or .rspec), but can also be used via --test-options='--format x':

--format progress
--format ParallelTests::RSpec::SummaryLogger --out tmp/spec_summary.log

RSpec: FailuresLogger

Produce pasteable command-line snippets for each failed example. For example:

rspec /path/to/my_spec.rb:123 # should do something

Add the following to your .rspec_parallel (or .rspec), but can also be used via --test-options='--format x':

--format progress
--format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log

(Not needed to retry failures, for that pass --only-failures to rspec)

RSpec: VerboseLogger

Prints a single line for starting and finishing each example, to see what is currently running in each process.

# PID, parallel process number, spec status, example description
[14403] [2] [STARTED] Foo foo
[14402] [1] [STARTED] Bar bar
[14402] [1] [PASSED] Bar bar

Add the following to your .rspec_parallel (or .rspec), but can also be used via --test-options='--format x':

  --format ParallelTests::RSpec::VerboseLogger

Cucumber: FailuresLogger

Log failed cucumber scenarios to the specified file. The filename can be passed to cucumber, prefixed with '@' to rerun failures.

Usage:

cucumber --format ParallelTests::Cucumber::FailuresLogger --out tmp/cucumber_failures.log

Or add the formatter to the parallel: profile of your cucumber.yml:

parallel: --format progress --format ParallelTests::Cucumber::FailuresLogger --out tmp/cucumber_failures.log

but can also be used via --test-options='--format x':

Note if your cucumber.yml default profile uses <%= std_opts %> you may need to insert this as follows parallel: <%= std_opts %> --format progress...

To rerun failures:

cucumber @tmp/cucumber_failures.log

Setup for non-rails

gem install parallel_tests
# go to your project dir
parallel_test
parallel_rspec
parallel_cucumber
parallel_spinach
  • use ENV['TEST_ENV_NUMBER'] inside your tests to select separate db/memcache/etc. (docker compose: expose it)

  • Only run a subset of files / folders:

    parallel_test test/bar test/baz/foo_text.rb

  • Pass test-options and files via --:

    parallel_rspec -- -t acceptance -f progress -- spec/foo_spec.rb spec/acceptance

  • Pass in test options, by using the -o flag (wrap everything in quotes):

    parallel_cucumber -n 2 -o '-p foo_profile --tags @only_this_tag or @only_that_tag --format summary'

Options are:

-n PROCESSES                     How many processes to use, default: available CPUs
-p, --pattern PATTERN            run tests matching this regex pattern
    --exclude-pattern PATTERN    exclude tests matching this regex pattern
    --group-by TYPE              group tests by:
                                 found - order of finding files
                                 steps - number of cucumber/spinach steps
                                 scenarios - individual cucumber scenarios
                                 filesize - by size of the file
                                 runtime - info from runtime log
                                 default - runtime when runtime log is filled otherwise filesize
-m, --multiply-processes COUNT   use given number as a multiplier of processes to run
-s, --single PATTERN             Run all matching files in the same process
-i, --isolate                    Do not run any other tests in the group used by --single(-s)
    --isolate-n PROCESSES        Use 'isolate'  singles with number of processes, default: 1
    --highest-exit-status        Exit with the highest exit status provided by test run(s)
    --failure-exit-code INT      Specify the exit code to use when tests fail
    --specify-groups SPECS       Use 'specify-groups' if you want to specify multiple specs running in multiple
                                 processes in a specific formation. Commas indicate specs in the same process,
                                 pipes indicate specs in a new process. If SPECS is a '-' the value for this
                                 option is read from STDIN instead. Cannot use with --single, --isolate, or
                                 --isolate-n.  Ex.
                                 $ parallel_tests -n 3 . --specify-groups '1_spec.rb,2_spec.rb|3_spec.rb'
                                   Process 1 will contain 1_spec.rb and 2_spec.rb
                                   Process 2 will contain 3_spec.rb
                                   Process 3 will contain all other specs
    --only-group GROUP_INDEX[,GROUP_INDEX]
                                 Only run the given group numbers.
                                 Changes `--group-by` default to 'filesize'.
-e, --exec COMMAND               execute COMMAND in parallel and with ENV['TEST_ENV_NUMBER']
    --exec-args COMMAND          execute COMMAND in parallel with test files as arguments, for example:
                                 $ parallel_tests --exec-args echo
                                 > echo spec/a_spec.rb spec/b_spec.rb
-o, --test-options 'OPTIONS'     execute test commands with those options
-t, --type TYPE                  test(default) / rspec / cucumber / spinach
    --suffix PATTERN             override built in test file pattern (should match suffix):
                                 '_spec.rb$' - matches rspec files
                                 '_(test|spec).rb$' - matches test or spec files
    --serialize-stdout           Serialize stdout output, nothing will be written until everything is done
    --prefix-output-with-test-env-number
                                 Prefixes test env number to the output when not using --serialize-stdout
    --combine-stderr             Combine stderr into stdout, useful in conjunction with --serialize-stdout
    --non-parallel               execute same commands but do not in parallel, needs --exec
    --no-symlinks                Do not traverse symbolic links to find test files
    --ignore-tags PATTERN        When counting steps ignore scenarios with tags that match this pattern
    --nice                       execute test commands with low priority.
    --runtime-log PATH           Location of previously recorded test runtimes
    --allowed-missing COUNT      Allowed percentage of missing runtimes (default = 50)
    --allow-duplicates           When detecting files to run, allow duplicates
    --unknown-runtime SECONDS    Use given number as unknown runtime (otherwise use average time)
    --first-is-1                 Use "1" as TEST_ENV_NUMBER to not reuse the default test environment
    --fail-fast                  Stop all groups when one group fails (best used with --test-options '--fail-fast' if supported
    --test-file-limit LIMIT      Limit to this number of files per test run by batching
                                 (for windows set to ~100 to stay below 8192 max command limit, might have bugs from reusing test-env-number
                                 and summarizing partial results)
    --verbose                    Print debug output
    --verbose-command            Combines options --verbose-process-command and --verbose-rerun-command
    --verbose-process-command    Print the command that will be executed by each process before it begins
    --verbose-rerun-command      After a process fails, print the command executed by that process
    --quiet                      Print only tests output
-v, --version                    Show Version
-h, --help                       Show this.

You can run any command in parallel with -e / --exec

parallel_test -n 3 -e 'ruby -e "puts %[hello from process #{ENV[:TEST_ENV_NUMBER.to_s].inspect}]"'
hello from process "2"
hello from process ""
hello from process "3"

and pass arguments to a command with --exec-args

parallel_test -n 3 --exec-args echo
spec/a_spec.rb spec/b_spec.rb 
spec/c_spec.rb spec/d_spec.rb
spec/e_spec.rb

and run multiple commands by using sh and --exec-args

parallel_test -n 3 --exec-args "sh -c \"echo 'hello world' && rspec \$@\" --"

TIPS

RSpec

Cucumber

  • Add a parallel: foo profile to your config/cucumber.yml and it will be used to run parallel tests
  • ReportBuilder can help with combining parallel test results
    • Supports Cucumber 2.0+ and is actively maintained
    • Combines many JSON files into a single file
    • Builds a HTML report from JSON with support for debug msgs & embedded Base64 images.

General

  • [ZSH] use quotes to use rake arguments rake "parallel:prepare[3]"
  • [Memcached] use different namespaces
    e.g. config.cache_store = ..., namespace: "test_#{ENV['TEST_ENV_NUMBER']}"
  • Debug errors that only happen with multiple files using --verbose and cleanser
  • export PARALLEL_TEST_PROCESSORS=13 to override default processor count
  • export PARALLEL_TEST_MULTIPLY_PROCESSES=.5 to override default processor multiplier
  • export PARALLEL_RAILS_ENV=environment_name to override the default test environment
  • Shell alias: alias prspec='parallel_rspec -m 2 --'
  • [Spring] Add the spring-commands-parallel-tests gem to your Gemfile to get parallel_tests working with Spring.
  • --first-is-1 will make the first environment be 1, so you can test while running your full suite.
    export PARALLEL_TEST_FIRST_IS_1=true will provide the same result
  • email_spec and/or action_mailer_cache_delivery
  • zeus-parallel_tests
  • Distributed Parallel Tests on CI systems) learn how parallel_tests can run on distributed servers such as Travis and GitLab-CI. Also shows you how to use parallel_tests without adding TEST_ENV_NUMBER-backends
  • Capybara setup
  • Sphinx setup
  • Capistrano setup let your tests run on a big box instead of your laptop
  • Rails vs ArgumentError: secret_key_base: use config.secret_key_base = Random.hex(64), see rails issue

Contribute your own gotchas to the Wiki or even better open a PR :)

Authors

inspired by pivotal labs

Contributors

Michael Grosser
michael@grosser.it
License: MIT


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 1,492
Total Committers: 204
Avg Commits per committer: 7.314
Development Distribution Score (DDS): 0.387

Commits in past year: 35
Committers in past year: 9
Avg Commits per committer in past year: 3.889
Development Distribution Score (DDS) in past year: 0.257

Name Email Commits
grosser g****l@g****m 914
David Rodríguez d****z@r****t 38
Joakim Kolsjö j****o@g****m 21
Jon Dufresne j****e@g****m 19
Aleksei Gusev a****v@g****m 17
Eric Kessler m****8@g****m 14
Adam Berlin b****b@g****m 13
Cezary Baginski c****y@c****t 12
Sandeep Singh s****1@m****m 12
Lukas Oberhuber l****r@s****k 10
Izaak Alpert i****t@b****m 10
Fred Wu f****d@e****m 10
Nathan Broadbent g****t@n****m 9
Zeke Fast z****t@g****m 9
Calaway c****y 9
Benjamin Quorning b****n@q****t 9
Alejandro Pulver a****r@g****m 9
Urban Hafner c****t@u****m 8
Samer Masry s****r@p****m 8
Aaron Jensen a****n@g****m 7
Alexandre Wilhelm c****d@g****m 7
Joseph Shraibman j****n@m****m 7
Nolan Ehrstrom g****b@n****m 7
Silas Sewell s****s@s****g 7
Terence Lee h****2@g****m 6
Iain Beeston i****n@g****m 6
Matt Hodgson m****n@m****m 6
Adam Berlin and ZABEZ p****l@s****m 5
colin harris q****1@g****m 5
bootstraponline c****e@b****m 5
and 174 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 6 days ago

Total issues: 122
Total pull requests: 154
Average time to close issues: 10 months
Average time to close pull requests: about 1 month
Total issue authors: 108
Total pull request authors: 52
Average comments per issue: 3.99
Average comments per pull request: 1.3
Merged pull request: 110
Bot issues: 0
Bot pull requests: 0

Past year issues: 15
Past year pull requests: 38
Past year average time to close issues: 10 days
Past year average time to close pull requests: 3 days
Past year issue authors: 14
Past year pull request authors: 11
Past year average comments per issue: 1.6
Past year average comments per pull request: 0.76
Past year merged pull request: 24
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/grosser/parallel_tests

Top Issue Authors

  • neeraj-agarwal-fw (4)
  • luke-hill (3)
  • tgentry-bamboo (2)
  • tatethurston (2)
  • masukomi (2)
  • T00595 (2)
  • maxjacobson (2)
  • thibpoullain (2)
  • grosser (2)
  • yasirazgar (2)
  • OndrejKu (2)
  • tahaewagers (1)
  • fwolfst (1)
  • srbarrios (1)
  • drzaiusx11 (1)

Top Pull Request Authors

  • grosser (53)
  • jdufresne (19)
  • vimutter (4)
  • aramprice (4)
  • johvet (4)
  • jaydorsey (4)
  • priceline-rosenfeld (2)
  • rajaramaniyer (2)
  • codener (2)
  • hatsu38 (2)
  • bquorning (2)
  • y-yagi (2)
  • adis-io (2)
  • okaruk (2)
  • mark-young-atg (2)

Top Issue Labels

  • Feature (1)

Top Pull Request Labels


Package metadata

gem.coop: parallel_tests

Run Test::Unit / RSpec / Cucumber / Spinach in parallel

  • Homepage: https://github.com/grosser/parallel_tests
  • Documentation: http://www.rubydoc.info/gems/parallel_tests/
  • Licenses: MIT
  • Latest release: 5.6.0 (published 25 days ago)
  • Last Synced: 2026-02-25T19:31:42.762Z (5 days ago)
  • Versions: 265
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 147,711,275 Total
  • Docker Downloads: 138,340,798
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 0.057%
    • Downloads: 0.17%
  • Maintainers (1)
rubygems.org: parallel_tests

Run Test::Unit / RSpec / Cucumber / Spinach in parallel

  • Homepage: https://github.com/grosser/parallel_tests
  • Documentation: http://www.rubydoc.info/gems/parallel_tests/
  • Licenses: MIT
  • Latest release: 5.6.0 (published 25 days ago)
  • Last Synced: 2026-02-25T19:32:19.856Z (5 days ago)
  • Versions: 265
  • Dependent Packages: 123
  • Dependent Repositories: 5,167
  • Downloads: 147,711,275 Total
  • Docker Downloads: 138,340,798
  • Rankings:
    • Downloads: 0.181%
    • Dependent packages count: 0.282%
    • Dependent repos count: 0.441%
    • Average: 0.561%
    • Docker downloads count: 0.615%
    • Stargazers count: 0.629%
    • Forks count: 1.22%
  • Maintainers (1)
proxy.golang.org: github.com/grosser/parallel_tests

rubygems.org: phene-parallel_tests

Run tests / specs / features in parallel

  • Homepage: http://github.com/grosser/parallel_tests
  • Documentation: http://www.rubydoc.info/gems/phene-parallel_tests/
  • Licenses:
  • Latest release: 0.6.2 (published over 14 years ago)
  • Last Synced: 2026-02-23T21:03:05.159Z (7 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 4,628 Total
  • Rankings:
    • Stargazers count: 0.612%
    • Forks count: 1.195%
    • Dependent packages count: 15.554%
    • Dependent repos count: 21.778%
    • Average: 22.083%
    • Downloads: 71.277%
  • Maintainers (1)
gem.coop: phene-parallel_tests

Run tests / specs / features in parallel

  • Homepage: http://github.com/grosser/parallel_tests
  • Documentation: http://www.rubydoc.info/gems/phene-parallel_tests/
  • Licenses:
  • Latest release: 0.6.2 (published over 14 years ago)
  • Last Synced: 2026-02-23T21:03:00.278Z (7 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4,628 Total
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 23.787%
    • Downloads: 71.361%
  • Maintainers (1)
ubuntu-24.04: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 25 days ago)
  • Last Synced: 2026-02-06T15:42:50.284Z (25 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
ubuntu-23.04: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 20 days ago)
  • Last Synced: 2026-02-11T06:46:09.143Z (20 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-23.10: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 18 days ago)
  • Last Synced: 2026-02-13T18:28:25.937Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-11: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Documentation: https://packages.debian.org/bullseye/ruby-parallel-tests
  • Licenses:
  • Latest release: 3.4.0-1 (published 20 days ago)
  • Last Synced: 2026-02-13T08:23:18.844Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-20.04: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 2.31.0-1 (published 18 days ago)
  • Last Synced: 2026-02-13T07:19:30.266Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
ubuntu-24.10: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 18 days ago)
  • Last Synced: 2026-02-13T09:54:05.998Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
ubuntu-22.04: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Licenses:
  • Latest release: 3.7.3-1 (published 18 days ago)
  • Last Synced: 2026-02-13T13:22:22.853Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%
debian-12: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Documentation: https://packages.debian.org/bookworm/ruby-parallel-tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 18 days ago)
  • Last Synced: 2026-02-12T23:37:15.183Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
debian-13: ruby-parallel-tests

  • Homepage: https://github.com/grosser/parallel_tests
  • Documentation: https://packages.debian.org/trixie/ruby-parallel-tests
  • Licenses:
  • Latest release: 4.1.0-1 (published 19 days ago)
  • Last Synced: 2026-02-13T13:18:15.931Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent repos count: 0.0%
    • Dependent packages count: 0.0%
    • Average: 100%

Dependencies

spec/fixtures/rails60/package.json npm
  • @rails/actioncable ^6.0.0
  • @rails/ujs ^6.0.0
  • turbolinks ^5.2.0
spec/fixtures/rails61/package.json npm
  • @rails/actioncable ^6.0.0
  • @rails/ujs ^6.0.0
  • turbolinks ^5.2.0
Gemfile rubygems
  • bump >= 0
  • cucumber ~> 4.0
  • cuke_modeler ~> 3.0
  • minitest ~> 5.5.0
  • rake >= 0
  • rspec ~> 3.3
  • rubocop >= 0
  • spinach >= 0
  • test-unit >= 0
Gemfile.lock rubygems
  • activesupport 6.1.5
  • ast 2.4.2
  • builder 3.2.4
  • bump 0.10.0
  • colorize 0.8.1
  • concurrent-ruby 1.1.10
  • cucumber 4.1.0
  • cucumber-core 7.1.0
  • cucumber-create-meta 1.0.0
  • cucumber-cucumber-expressions 10.3.0
  • cucumber-gherkin 14.2.0
  • cucumber-html-formatter 7.2.0
  • cucumber-messages 12.4.0
  • cucumber-tag-expressions 2.0.4
  • cucumber-wire 3.1.0
  • cuke_modeler 3.15.0
  • diff-lcs 1.3
  • ffi 1.15.5
  • gherkin-ruby 0.3.2
  • i18n 1.10.0
  • middleware 0.1.0
  • minitest 5.5.1
  • multi_test 0.1.2
  • parallel 1.22.1
  • parallel_tests 3.11.1
  • parser 3.1.1.0
  • power_assert 2.0.1
  • protobuf-cucumber 3.10.8
  • rainbow 3.1.1
  • rake 13.0.6
  • regexp_parser 2.2.1
  • rexml 3.2.5
  • rspec 3.11.0
  • rspec-core 3.11.0
  • rspec-expectations 3.11.0
  • rspec-mocks 3.11.0
  • rspec-support 3.11.0
  • rubocop 1.26.1
  • rubocop-ast 1.16.0
  • ruby-progressbar 1.11.0
  • spinach 0.11.0
  • sys-uname 1.2.2
  • test-unit 3.5.3
  • thor 1.2.1
  • thread_safe 0.3.6
  • tzinfo 2.0.4
  • unicode-display_width 2.1.0
  • zeitwerk 2.5.4
parallel_tests.gemspec rubygems
  • parallel >= 0
spec/fixtures/rails60/Gemfile rubygems
  • parallel_tests >= 0 development
  • sprockets-rails >= 0
  • sqlite3 >= 0
  • tzinfo-data >= 0
spec/fixtures/rails60/Gemfile.lock rubygems
  • actioncable 6.0.3
  • actionmailer 6.0.3
  • actionpack 6.0.3
  • actionview 6.0.3
  • activejob 6.0.3
  • activemodel 6.0.3
  • activerecord 6.0.3
  • activesupport 6.0.3
  • builder 3.2.4
  • concurrent-ruby 1.1.10
  • crass 1.0.6
  • erubi 1.10.0
  • globalid 1.0.0
  • i18n 1.10.0
  • loofah 2.15.0
  • mail 2.7.1
  • method_source 1.0.0
  • mini_mime 1.1.2
  • mini_portile2 2.6.1
  • minitest 5.15.0
  • nio4r 2.5.8
  • nokogiri 1.12.5
  • parallel 1.22.1
  • parallel_tests 3.11.1
  • racc 1.6.0
  • rack 2.2.3
  • rack-test 1.1.0
  • rails-dom-testing 2.0.3
  • rails-html-sanitizer 1.4.2
  • railties 6.0.3
  • rake 13.0.6
  • sprockets 4.0.3
  • sprockets-rails 3.4.2
  • sqlite3 1.4.2
  • thor 1.2.1
  • thread_safe 0.3.6
  • tzinfo 1.2.9
  • tzinfo-data 1.2022.1
  • websocket-driver 0.7.5
  • websocket-extensions 0.1.5
  • zeitwerk 2.5.4
spec/fixtures/rails61/Gemfile rubygems
  • parallel_tests >= 0 development
  • sprockets-rails >= 0
  • sqlite3 >= 0
  • tzinfo-data >= 0
spec/fixtures/rails61/Gemfile.lock rubygems
  • actioncable 6.1.3
  • actionmailer 6.1.3
  • actionpack 6.1.3
  • actionview 6.1.3
  • activejob 6.1.3
  • activemodel 6.1.3
  • activerecord 6.1.3
  • activesupport 6.1.3
  • builder 3.2.4
  • concurrent-ruby 1.1.10
  • crass 1.0.6
  • erubi 1.10.0
  • globalid 1.0.0
  • i18n 1.10.0
  • loofah 2.15.0
  • mail 2.7.1
  • method_source 1.0.0
  • mini_mime 1.1.2
  • mini_portile2 2.6.1
  • minitest 5.15.0
  • nio4r 2.5.8
  • nokogiri 1.12.5
  • parallel 1.22.1
  • parallel_tests 3.11.1
  • racc 1.6.0
  • rack 2.2.3
  • rack-test 1.1.0
  • rails-dom-testing 2.0.3
  • rails-html-sanitizer 1.4.2
  • railties 6.1.3
  • rake 13.0.6
  • sprockets 4.0.3
  • sprockets-rails 3.4.2
  • sqlite3 1.4.2
  • thor 1.2.1
  • tzinfo 2.0.4
  • tzinfo-data 1.2022.1
  • websocket-driver 0.7.5
  • websocket-extensions 0.1.5
  • zeitwerk 2.5.4
spec/fixtures/rails70/Gemfile rubygems
  • parallel_tests >= 0 development
  • sqlite3 >= 0
  • tzinfo-data >= 0
spec/fixtures/rails70/Gemfile.lock rubygems
  • actioncable 7.0.2.3
  • actionmailer 7.0.2.3
  • actionpack 7.0.2.3
  • actionview 7.0.2.3
  • activejob 7.0.2.3
  • activemodel 7.0.2.3
  • activerecord 7.0.2.3
  • activesupport 7.0.2.3
  • builder 3.2.4
  • concurrent-ruby 1.1.10
  • crass 1.0.6
  • digest 3.1.0
  • erubi 1.10.0
  • globalid 1.0.0
  • i18n 1.10.0
  • io-wait 0.2.1
  • loofah 2.15.0
  • mail 2.7.1
  • method_source 1.0.0
  • mini_mime 1.1.2
  • mini_portile2 2.8.0
  • minitest 5.15.0
  • net-imap 0.2.3
  • net-pop 0.1.1
  • net-protocol 0.1.2
  • net-smtp 0.3.1
  • nio4r 2.5.8
  • nokogiri 1.13.3
  • parallel 1.22.1
  • parallel_tests 3.11.1
  • racc 1.6.0
  • rack 2.2.3
  • rack-test 1.1.0
  • rails-dom-testing 2.0.3
  • rails-html-sanitizer 1.4.2
  • railties 7.0.2.3
  • rake 13.0.6
  • sqlite3 1.4.2
  • strscan 3.0.1
  • thor 1.2.1
  • timeout 0.2.0
  • tzinfo 2.0.4
  • tzinfo-data 1.2022.1
  • websocket-driver 0.7.5
  • websocket-extensions 0.1.5
  • zeitwerk 2.5.4
.github/workflows/test.yml actions
  • actions/checkout master composite
  • ruby/setup-ruby v1 composite

Score: 33.680517269811446