namespace:paralleldodefrun_in_parallel(cmd,options)count=(options[:count]?options[:count].to_i:nil)executable=File.join(File.dirname(__FILE__),'..','..','bin','parallel_test')command="#{executable} --exec '#{cmd}' -n #{count}"abortunlesssystem(command)enddesc"create test databases by running db:create for each test db --> parallel:create[num_cpus]"task:create,:countdo|t,args|run_in_parallel('rake db:create RAILS_ENV=test',args)enddesc"update test databases by running db:test:prepare for each test db --> parallel:prepare[num_cpus]"task:prepare,:countdo|t,args|run_in_parallel('rake db:test:prepare',args)end# when dumping/resetting takes too longdesc"update test databases by running db:mgrate for each test db --> parallel:migrate[num_cpus]"task:migrate,:countdo|t,args|run_in_parallel('rake db:migrate RAILS_ENV=test',args)end# Do not want a development db on integration server.# and always dump a complete schema ?desc"load dumped schema for each test db --> parallel:load_schema[num_cpus]"task:load_schema,:countdo|t,args|run_in_parallel('rake db:schema:load RAILS_ENV=test',args)end['test','spec','features'].eachdo|type|desc"run #{type} in parallel with parallel:#{type}[num_cpus]"tasktype,:count,:path_prefix,:optionsdo|t,args|$LOAD_PATH<<File.expand_path(File.join(File.dirname(__FILE__),'..'))require"parallel_tests"count,prefix,options=ParallelTests.parse_rake_args(args)executable=File.join(File.dirname(__FILE__),'..','..','bin','parallel_test')command="#{executable} --type #{type} -n #{count} -p '#{prefix}' -r '#{Rails.root}' -o '#{options}'"abortunlesssystem(command)# allow to chain tasks e.g. rake parallel:spec parallel:featuresendendend#backwards compatability#spec:parallel:prepare#spec:parallel#test:parallelnamespace:specdonamespace:paralleldotask:prepare,:countdo|t,args|$stderr.puts"WARNING -- Deprecated! use parallel:prepare"Rake::Task['parallel:prepare'].invoke(args[:count])endendtask:parallel,:count,:path_prefixdo|t,args|$stderr.puts"WARNING -- Deprecated! use parallel:spec"Rake::Task['parallel:spec'].invoke(args[:count],args[:path_prefix])endendnamespace:testdotask:parallel,:count,:path_prefixdo|t,args|$stderr.puts"WARNING -- Deprecated! use parallel:test"Rake::Task['parallel:test'].invoke(args[:count],args[:path_prefix])endend