Bypassing Rails in Minitest
Explore methods to bypass Rails in Minitest to increase test speed and efficiency. Understand how to set up testing helpers, implement database cleanup after tests, and avoid default Rails rake tasks, enabling you to run faster, more isolated tests in Ruby on Rails applications.
We'll cover the following...
We'll cover the following...
Minitest bypassing Rails for speed
The same Rails-bypassing test technique works in Minitest, but there are some minor differences based on how the RSpec executable works versus the way Minitest works.
In Minitest, the active_record_test_helper looks like this:
# SQLite. Versions 3.8.0 and up are supported.
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
database: db/development.sqlite3
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
pool: 5
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3Adding active_record_test_helper.rb file in /test directory
This is based on a Minitest version from Robert Evans on GitHub.
The basic setup is ...