我生成動態基於在Rake文件現有的測試文件測試任務生成動態(基於現有的測試文件)耙測試任務。考慮你有以模式test_<name>.rb
命名的各種單元測試文件。所以我正在做的是創建一個以'test'命名空間內的文件名命名的任務。 有了下面的代碼,然後我就可以調用所有的測試與rake test:<name>
在Rake文件
require 'rake/testtask'
task :default => 'test:all'
namespace :test do
desc "Run all tests"
Rake::TestTask.new(:all) do |t|
t.test_files = FileList['test_*.rb']
end
FileList['test_*.rb'].each do |task|
name = task.gsub(/test_|\.rb\z/, '')
desc "Run #{name} tests"
Rake::TestTask.new(:"#{name}") do |t|
t.pattern = task
end
end
end
上面的代碼工作,它似乎只是簡單的任務生成太多的代碼。 而我仍然沒有想出一種方式來打印一些描述文本到控制檯,如puts "Running #{name} tests:"
有沒有比上述方法更優雅的方式?
編輯:我真的有望獲得是循環的替代動態定義的任務,但我想耙LIB不提供任何幫助到,所以我堅持的循環。
編輯@ScottJShea的提示代碼 – jasoares 2012-03-03 00:02:03
對於那些不知道的人,Jim Weirich是Rake項目的作者,我感謝他的時間來回答我的問題。 – jasoares 2012-03-05 14:23:02