1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
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)
Fog::Formatador.display_line
start = Time.now.to_i
Thread.main[:results] = []
threads = Fog.providers.map do |key, value|
Thread.new do
Thread.main[:results] << {
provider: value,
success: sh("export FOG_MOCK=#{mocked} && bundle exec shindont +#{key}")
}
end
end
threads.each(&:join)
Fog::Formatador.display_table(Thread.main[:results].sort { |x, y| x[:provider] <=> y[:provider] })
Fog::Formatador.display_line("[bold]FOG_MOCK=#{mocked}[/] tests completed in [bold]#{Time.now.to_i - start}[/] seconds")
Fog::Formatador.display_line
end
end
end
end
|