diff --git a/lib/tasks/selenium b/lib/tasks/selenium new file mode 100644 index 0000000..f0e2ed8 --- /dev/null +++ b/lib/tasks/selenium @@ -0,0 +1,4 @@ +desc 'Runs Seleniun acceptance tests' +task :selenium do + sh "xvfb-run -a cucumber -p selenium --format #{ENV['CUCUMBER_FORMAT'] || 'progress'}" +end diff --git a/lib/tasks/test.rake b/lib/tasks/test.rake index a95cd3b..8b13789 100644 --- a/lib/tasks/test.rake +++ b/lib/tasks/test.rake @@ -1,39 +1 @@ -desc 'Runs Seleniun acceptance tests' -task :selenium do - sh "xvfb-run -a cucumber -p selenium --format #{ENV['CUCUMBER_FORMAT'] || 'progress'}" -end - -TestTasks = %w(test:units test:functionals test:integration) -CucumberTasks = %w(cucumber selenium) -NoosferoTasks = %w(test:noosfero_plugins) -AllTasks = TestTasks + CucumberTasks + NoosferoTasks - -task 'ci:full' do - data = [] - failed = [] - AllTasks.each do |task| - t0 = Time.now.to_i - begin - ENV['RAILS_ENV'] = 'test' - Rake::Task[task].invoke - status = 'PASS' - rescue => e - failed << task - status = 'FAIL' - end - t1 = Time.now.to_i - duration = t1 - t0 - data << { :name => task, :status => status, :duration => Time.at(duration).utc.strftime("%H:%M:%S") } - end - - puts - printf "%-30s %-6s %s\n", 'Task', 'Status', 'Duration' - printf "%-30s %-6s %s\n", '-' * 30, '-' * 6, '--------' - data.each do |entry| - printf "%-30s %-6s %s\n", entry[:name], entry[:status], entry[:duration] - end - - puts - abort "Errors running #{failed.join(', ')}!" if failed.any? -end diff --git a/script/ci b/script/ci new file mode 100755 index 0000000..12407ce --- /dev/null +++ b/script/ci @@ -0,0 +1,43 @@ +#!/usr/bin/env ruby + +tasks = %w[ + test:units + test:functionals + test:integration + cucumber + selenium + test:noosfero_plugins +] + +data = [] +failed = [] +tasks.each do |task| + + puts task + puts task.gsub(/./, '-') + puts + + t0 = Time.now.to_i + if system('rake', task) + status = 'PASS' + else + failed << task + status = 'FAIL' + end + t1 = Time.now.to_i + duration = t1 - t0 + data << { :name => task, :status => status, :duration => Time.at(duration).utc.strftime("%H:%M:%S") } +end + +puts +puts +printf "%-30s %-6s %s\n", '-' * 30, '-' * 6, '--------' +printf "%-30s %-6s %s\n", 'Task', 'Status', 'Duration' +printf "%-30s %-6s %s\n", '-' * 30, '-' * 6, '--------' +data.each do |entry| + printf "%-30s %-6s %s\n", entry[:name], entry[:status], entry[:duration] +end +printf "%-30s %-6s %s\n", '-' * 30, '-' * 6, '--------' + +puts +abort "Errors running #{failed.join(', ')}!" if failed.any? -- libgit2 0.21.2