2012-04-16 16:44:11 -05:00
|
|
|
require 'rake'
|
|
|
|
require 'rake/testtask'
|
2012-08-30 00:09:29 -05:00
|
|
|
require 'pathname'
|
|
|
|
|
|
|
|
TEST_DIRECTORY = Pathname.new(File.expand_path(__FILE__)).parent.realpath
|
2012-08-29 15:51:13 -05:00
|
|
|
TEST_FILES = FileList["#{TEST_DIRECTORY}/test_*.rb"]
|
2013-04-26 22:23:45 +01:00
|
|
|
GEM_DEPS = ['mocha']
|
2012-04-16 16:44:11 -05:00
|
|
|
|
2012-11-17 22:59:06 -06:00
|
|
|
Dir.chdir(TEST_DIRECTORY)
|
2012-04-16 16:44:11 -05:00
|
|
|
|
|
|
|
task :default => :test
|
|
|
|
|
2013-04-26 22:23:45 +01:00
|
|
|
task :deps do
|
|
|
|
GEM_DEPS.each do |dep|
|
|
|
|
`gem list --installed #{dep}`
|
|
|
|
next if $?.success?
|
|
|
|
sh 'gem', 'install', '--no-ri', '--no-rdoc', '--user-install', dep
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2012-11-17 22:59:06 -06:00
|
|
|
Rake::TestTask.new(:test) do |t|
|
2012-04-16 16:44:11 -05:00
|
|
|
t.libs << Dir.pwd
|
|
|
|
t.test_files = TEST_FILES
|
|
|
|
end
|
|
|
|
|
|
|
|
namespace :test do
|
|
|
|
TEST_FILES.each do |file|
|
|
|
|
task = /test_(.+)\.rb/.match(file)
|
|
|
|
Rake::TestTask.new(task[1]) do |t|
|
|
|
|
t.libs << Dir.pwd
|
|
|
|
t.pattern = task[0]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2012-08-29 15:51:13 -05:00
|
|
|
|
|
|
|
begin
|
|
|
|
require 'rubygems'
|
|
|
|
require 'rcov/rcovtask'
|
|
|
|
|
|
|
|
Rcov::RcovTask.new do |t|
|
|
|
|
t.libs << Dir.pwd
|
|
|
|
t.test_files = TEST_FILES
|
|
|
|
t.rcov_opts = %w{--exclude=Gems
|
|
|
|
--exclude=test_
|
|
|
|
--exclude=testball
|
|
|
|
--exclude=testing}
|
2012-08-30 00:09:29 -05:00
|
|
|
t.output_dir = TEST_DIRECTORY+'coverage'
|
2012-08-29 15:51:13 -05:00
|
|
|
end
|
|
|
|
rescue LoadError
|
2012-11-17 22:59:06 -06:00
|
|
|
end
|
|
|
|
|
|
|
|
begin
|
|
|
|
require 'rubygems'
|
|
|
|
require 'ruby-prof/task'
|
|
|
|
|
|
|
|
RubyProf::ProfileTask.new do |t|
|
|
|
|
t.libs << Dir.pwd
|
|
|
|
t.test_files = TEST_FILES
|
|
|
|
t.output_dir = TEST_DIRECTORY+'prof'
|
|
|
|
t.printer = :graph_html
|
|
|
|
t.min_percent = 2
|
|
|
|
end
|
|
|
|
rescue LoadError
|
2012-08-29 15:51:13 -05:00
|
|
|
end
|