Skip to main content
Back to Blog
Ruby on Rails

Speeding Up Test Suites in Rails Applications with parallel_tests

By Aldin Rozario

S
Speeding Up Test Suites in Rails Applications with parallel_tests

In the world of Ruby on Rails development, writing tests is a cornerstone of building reliable, maintainable applications. But as your test suite grows, so does the time it takes to run. Enter parallel_tests.

What is parallel_tests?

The parallel_tests gem accelerates test execution by distributing tests across multiple CPU cores. It supports RSpec, Minitest, Cucumber, and more. The gem splits test files into balanced groups and executes each in separate processes with isolated databases.

Installation

Add it to your Gemfile’s test group:

group :test do
  gem 'parallel_tests'
end

Database Configuration

Update your config/database.yml to support multiple test databases:

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

Essential Commands

bundle exec rake parallel:create    # Create databases
bundle exec rake parallel:prepare   # Prepare databases
bundle exec rake parallel:migrate   # Run migrations
bundle exec rake parallel:setup     # All of the above
bundle exec rake parallel:drop      # Drop databases
bundle exec rake parallel:spec      # Run tests

Performance Results

A 10-minute sequential run was reduced to under 2 minutes on a 12-core system — exceeding a 4x speedup. The improvement is significant and compounds as your test suite grows.

Optimization Strategies

  • Process count controlparallel:spec[2] to limit to 2 processes
  • Runtime-based splitting — add ParallelTests::RSpec::RuntimeLogger to .rspec for balanced distribution
  • Spring integration — combine with Spring for even faster boot times

Important Considerations

Parallelization exposes race conditions and shared resource issues that sequential execution might hide. Solutions include using isolated resources like Tempfile or namespacing with ENV['TEST_ENV_NUMBER'].

Conclusion

The parallel_tests gem is a straightforward way to reclaim time spent waiting for tests. With proper configuration, you can see dramatic improvements in your development feedback loop.

Ready to Build?

Ready to Transform Your Digital Product?

Let's discuss how BetaCraft can help you strategize, execute, and scale your digital vision. Book a free consultation today.

Free consultation
No commitment required
Response within 24h