Creating a test rake task with Minitest
A simple way to create a rake task to run with Minitest
First, in your Rakefile (or lib/tasks/test.task or yet tasks/test.task) we need to require the rake/testtask :
require "bundler/gem_tasks"
require "rake/testtask"
Now we can instantiate a new TestTask object, wich receives a block where we can configure the task.
Rake::TestTask.new do |t|
end
In the configuration block, we set the test files that will run in the test task (everything inside tests directory.
Rake::TestTask.new do |t|
t.test_files = FileList['tests/**/*_test.rb'] #my directory to tests is 'tests' you can change at you will
end
desc "Run tests"
A good practice is to set the test task as default, we can do this adding this line in after creating the TestTask object.
ruby
task default: :test
Don't forget to require minitest/autorun to your test files.
The final file looks like this:
require "bundler/gem_tasks"
require "rake/testtask"
Rake::TestTask.new do |t|
t.test_files = FileList['tests/**/*_test.rb']
end
desc "Run tests"
task default: :test
Check other configuration options in the Rake::TestTask documentation.
Hope this helps! ;)
Written by Guilherme Burille Moretti
Related protips
1 Response
Thanks for this, I did want to note that typically the folder for tests is simply test without the s. Also from minitest's readme, they prefix files with test_ instead of postfixing them. So if you're following all conventions it ends up being
require "rake/testtask"
Rake::TestTask.new do |t|
t.test_files = FileList['test/**/test_*.rb']
end
desc "Run tests"
task default: :test
Thanks for the write up, just wanted to save someone else a bit of time.