Techioz Blog

Rake を使用した Ruby 単体テストの実行

概要

私は Rake ビルド ツールを使用して単体テストの実行を自動化することを調査していました。 Web を検索しましたが、すべて Rails を使用する例でした。私は通常、小さなコマンドライン プログラムや単純な Sinatra アプリケーションを作成するだけです。

そこで私は、コマンドラインで行うことをエミュレートするだけの次の (おそらく悪い) 解決策を思いつきました: (例として単体テストを 1 つ実行しただけです)。

desc 'Run unit tests'
task :test do
    sh 'ruby -I lib test/test_entry.rb'
end
task :default => :test

それは機能しますが、もっと良い方法があるはずだと思わずにはいられません。 require ‘test/test_entry.rb’ と書くだけでは機能しません。必要な問題が発生し、Ruby がすべてのファイルが存在する lib ディレクトリを見つけることができません。

解決策

Rake::TestTask http://rake.rubyforge.org/classes/Rake/TestTask.html を使用します。これを Rake ファイルに入れて、rake テストを実行します。

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.libs << "test"
  t.test_files = FileList['test/test*.rb']
  t.verbose = true
end