rake/testtask

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"