Rake::TestTaskに引数を普通の関数のように渡す
Rakefile
namespace :test do
# テストタスクの定義
# 指定されたファイルのテストを実行する
Rake::TestTask.new(:spot_test) do |test|
test.libs << File.expand_path('../../', __FILE__)
test.test_files = Dir[ "test/cases/#{ARGV.last}_test.rb" ]
test.verbose = true
end
# :spot_testを呼び出すためのタスク
# このタスクの後に:spot_testが実行される
task :spot => [:spot_test] do |t, args|
ARGV.slice(1,ARGV.size).each{|v| task v.to_sym do; end}
end
end
実行
shell> rake test:spot lib/core/query
通常、lib/core/queryが2つめのタスクとして認識されて実行されようとして
タスクが見つからないエラーが出るが、:spotタスクにて:lib/core/queryの名前の
何もしないタスクを定義しているためエラーがでない。
:spot_test内で同様の定義をしてもうまくいかないのでこのようにした。