123456789_123456789_123456789_123456789_123456789_

Setup

If you don’t have an environment for running tests, read edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#setting-up-a-development-environment

Running the Tests

To run a specific test:

$ bundle exec ruby -Itest test/cases/base_test.rb -n method_name

To run a set of tests:

$ bundle exec ruby -Itest test/cases/base_test.rb

You can also run tests that depend upon a specific database backend. For example:

$ bundle exec rake test:sqlite3

Simply executing bundle exec rake test is equivalent to the following:

$ bundle exec rake test:mysql2
$ bundle exec rake test:trilogy
$ bundle exec rake test:postgresql
$ bundle exec rake test:sqlite3

Using the SQLite3 adapter with an in-memory database is the fastest way to run the tests:

$ bundle exec rake test:sqlite3_mem

There should be tests available for each database backend listed in the Config File. (the exact set of available tests is defined in Rakefile)

There are some performance tests for the encryption system that can be run with.

$ rake test:encryption:performance:mysql2
$ rake test:integration:active_job:postgresql
$ rake test:encryption:performance:sqlite3

These performance tests are not executed as part of the regular testing tasks.

Config File

If test/config.yml is present, then its parameters are obeyed; otherwise, the parameters in test/config.example.yml are.

You can override the connections: parameter in either file using the ARCONN (Active Record CONNection) environment variable:

$ ARCONN=postgresql bundle exec ruby -Itest test/cases/base_test.rb

Or

$ bundle exec rake test:postgresql TEST=test/cases/base_test.rb

You can specify a custom location for the config file using the ARCONFIG environment variable.