Commit dcc12e37c6767d6d5c44040d3d9d620f7b64292f

Authored by Antonio Terceiro
1 parent fb48ecc5

rake test: summarize tasks at the end

Showing 1 changed file with 21 additions and 5 deletions   Show diff stats
lib/tasks/test.rake
@@ -17,15 +17,31 @@ NoosferoTasks = %w(test:noosfero_plugins) @@ -17,15 +17,31 @@ NoosferoTasks = %w(test:noosfero_plugins)
17 AllTasks = TestTasks + CucumberTasks + NoosferoTasks 17 AllTasks = TestTasks + CucumberTasks + NoosferoTasks
18 18
19 task :test do 19 task :test do
20 - errors = AllTasks.collect do |task| 20 + data = []
  21 + failed = []
  22 + AllTasks.each do |task|
  23 + t0 = Time.now.to_i
21 begin 24 begin
22 ENV['RAILS_ENV'] = 'test' 25 ENV['RAILS_ENV'] = 'test'
23 Rake::Task[task].invoke 26 Rake::Task[task].invoke
24 - nil 27 + status = 'PASS'
25 rescue => e 28 rescue => e
26 - task 29 + failed << task
  30 + status = 'FAIL'
27 end 31 end
28 - end.compact  
29 - abort "Errors running #{errors.to_sentence}!" if errors.any? 32 + t1 = Time.now.to_i
  33 + duration = t1 - t0
  34 + data << { :name => task, :status => status, :duration => Time.at(duration).utc.strftime("%H:%M:%S") }
  35 + end
  36 +
  37 + puts
  38 + printf "%-30s %-6s %s\n", 'Task', 'Status', 'Duration'
  39 + printf "%-30s %-6s %s\n", '-' * 30, '-' * 6, '--------'
  40 + data.each do |entry|
  41 + printf "%-30s %-6s %s\n", entry[:name], entry[:status], entry[:duration]
  42 + end
  43 +
  44 + puts
  45 + abort "Errors running #{failed.join(', ')}!" if failed.any?
30 end 46 end
31 47