Ruby での Test::Unit や MiniTest::Unit を使った複数のファイルのテスト
Perl で複数のテストを実行する場合は prove コマンドがあるけれど、Ruby の場合はどうするのがいいんだろうなー。 と思って調べてみました。
『Rubyベストプラクティス -プロフェッショナルによるコードとテクニック』 によると、Rake::TestTask を使うのが良いようです。 以下のような rakefile を書いて、あとは rake test で実行、と。
# coding: UTF-8 require 'rake/testtask' task :default => [:test] Rake::TestTask.new do |test| # $LOAD_PATH に追加するパス (デフォルトで 'lib' は入っている) test.libs << 'test' # テスト対象ファイルの指定 test.test_files = Dir[ 'test/**/test_*.rb' ] test.verbose = true end
このときのフォルダ構成は以下のようになります。
Project --+- lib -----+- ... | +- ... | +- test ----+- test_main.rb | +- test_aaa.rb | +- ... | +- rakefile
Project フォルダにいる状態で、以下のようにコマンドをたたくと、test ディレクトリ内の "test_" ではじまるファイル名のファイルが全て実行されます。
$ rake test