lib/dtr/raketasks.rb in dtr-1.0.0 vs lib/dtr/raketasks.rb in dtr-1.1.0

- old
+ new

@@ -16,10 +16,11 @@ require 'rake' require 'rake/testtask' require 'rake/tasklib' require 'dtr' +require 'dtr/shared/root' require 'dtr/shared/ruby_ext' require 'dtr/shared/utils' require 'dtr/shared/sync_codebase/package' module DTR @@ -83,27 +84,21 @@ @libs.unshift DTR.lib_path lib_path = @libs.join(File::PATH_SEPARATOR) desc "Run tests with DTR injected" task @name do - @agent = start_agent + start_agent run_code = '' - begin - RakeFileUtils.verbose(@verbose) do - run_code = rake_loader - @ruby_opts.unshift( "-I#{lib_path}" ) - @ruby_opts.unshift( "-w" ) if @warning - - ruby @ruby_opts.join(" ") + - " \"#{run_code}\" " + - file_list.unshift('dtr/test_unit_injection.rb').collect { |fn| "\"#{fn}\"" }.join(' ') + - " #{option_list}" - end - ensure - if defined?(@agent) - DTR.kill_process @agent - end + RakeFileUtils.verbose(@verbose) do + run_code = rake_loader + @ruby_opts.unshift( "-I#{lib_path}" ) + @ruby_opts.unshift( "-w" ) if @warning + + ruby @ruby_opts.join(" ") + + " \"#{run_code}\" " + + file_list.unshift('dtr/test_unit_injection.rb').collect { |fn| "\"#{fn}\"" }.join(' ') + + " #{option_list}" end end self end @@ -111,12 +106,12 @@ def start_agent return if self.processes.to_i <= 0 runner_names = [] self.processes.to_i.times {|i| runner_names << "runner#{i}"} - DTR.fork_process do - DTR_AGENT_OPTIONS[:runners] = runner_names if DTR_AGENT_OPTIONS[:runners].empty? - DTR.start_agent + DTR.agent_runners = runner_names if DTR.agent_runners.blank? + Thread.start do + DTR.run_script('DTR::Agent.start(:hypnotize_once)') end end end # Create a packaging task that will package the project into