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