class ParallelTests::CLI
def run_tests_in_parallel(num_processes, options)
def run_tests_in_parallel(num_processes, options) test_results = nil run_tests_proc = -> { groups = @runner.tests_in_groups(options[:files], num_processes, options) groups.reject! &:empty? test_results = if options[:only_group] groups_to_run = options[:only_group].collect{|i| groups[i - 1]}.compact report_number_of_tests(groups_to_run) unless options[:quiet] execute_in_parallel(groups_to_run, groups_to_run.size, options) do |group| run_tests(group, groups_to_run.index(group), 1, options) end else report_number_of_tests(groups) unless options[:quiet] execute_in_parallel(groups, groups.size, options) do |group| run_tests(group, groups.index(group), num_processes, options) end end report_results(test_results, options) unless options[:quiet] } if options[:quiet] run_tests_proc.call else report_time_taken(&run_tests_proc) end abort final_fail_message if any_test_failed?(test_results) end