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.