minitestでテストを書いたことがなかったので、まずはテストの実行方法を調べてみた。すると、rake/testtask
というライブラリを使うと簡単にテストのためのrakeタスクを定義できることがわかった。
# Rakefile
require "rake/testtask"
Rake::TestTask.new do |task|
task.libs = ["lib", "test"]
task.test_files = FileList["test/**/*.rb"]
end
#libs=
でテスト実行前に$LOAD_PATH
に指定したパスを追加できる。require "test_helper"
みたいに書けるのはこれのおかげ。#test_files=
でテスト対象を指定できる。
テストの実行はこんな感じ。
# 全テストを実行
% rake test
# ファイルを指定して実行
% rake test TEST=test/foo_test.rb
# メソッドを指定して実行
% rake test TESTOPTS="--name=test_foo"