fog--fog/lib/tasks/test_task.rb

47 lines
1.1 KiB
Ruby

require "rake"
require "rake/tasklib"
module Fog
module Rake
class TestTask < ::Rake::TaskLib
def initialize
desc "Run the mocked tests"
task :test do
Rake::Task[:mock_tests].invoke
end
task :mock_tests do
tests(true)
end
task :real_tests do
tests(false)
end
end
def tests(mocked)
Formatador.display_line
start = Time.now.to_i
threads = []
Thread.main[:results] = []
Fog.providers.each do |key, value|
threads << Thread.new do
Thread.main[:results] << {
:provider => value,
:success => sh("export FOG_MOCK=#{mocked} && bundle exec shindont +#{key}")
}
end
end
threads.each do |thread|
thread.join
end
Formatador.display_table(Thread.main[:results].sort {|x,y| x[:provider] <=> y[:provider]})
Formatador.display_line("[bold]FOG_MOCK=#{mocked}[/] tests completed in [bold]#{Time.now.to_i - start}[/] seconds")
Formatador.display_line
end
end
end
end