lib/spork/runner.rb in spork-0.4.4 vs lib/spork/runner.rb in spork-0.5.1
- old
+ new
@@ -17,10 +17,11 @@
opt = OptionParser.new
opt.banner = "Usage: spork [test framework name] [options]\n\n"
opt.separator "Options:"
opt.on("-b", "--bootstrap") {|ignore| @options[:bootstrap] = true }
+ opt.on("-d", "--diagnose") {|ignore| @options[:diagnose] = true }
opt.on("-h", "--help") {|ignore| @options[:help] = true }
non_option_args = args.select { |arg| ! args[0].match(/^-/) }
@options[:server_matcher] = non_option_args[0]
opt.parse!(args)
@@ -43,29 +44,29 @@
def find_server
if options[:server_matcher]
@server = Spork::Server.supported_servers(options[:server_matcher]).first
unless @server
- @output.puts <<-ERROR
+ @error.puts <<-ERROR
#{options[:server_matcher].inspect} didn't match a supported test framework.
#{supported_servers_text}
ERROR
return
end
unless @server.available?
- @output.puts <<-USEFUL_ERROR
+ @error.puts <<-USEFUL_ERROR
I can't find the helper file #{@server.helper_file} for the #{@server.server_name} testing framework.
Are you running me from the project directory?
USEFUL_ERROR
return
end
else
@server = Spork::Server.available_servers.first
if @server.nil?
- @output.puts <<-USEFUL_ERROR
+ @error.puts <<-USEFUL_ERROR
I can't find any testing frameworks to use.
Are you running me from a project directory?
USEFUL_ERROR
return
end
@@ -74,15 +75,29 @@
end
def run
return false unless find_server
ENV["DRB"] = 'true'
- ENV["RAILS_ENV"] ||= 'test' if server.using_rails?
- @output.puts "Using #{server.server_name}"
- return server.bootstrap if options[:bootstrap]
- return(false) unless server.preload
- server.run
- return true
+ @error.puts "Using #{server.server_name}"
+ @error.flush
+ case
+ when options[:bootstrap]
+ server.bootstrap
+ when options[:diagnose]
+ require 'spork/diagnoser'
+
+ Spork::Diagnoser.install_hook!
+ server.preload
+ Spork::Diagnoser.output_results(@output)
+ return true
+ else
+ return(false) unless server.preload
+ server.run
+ return true
+ end
+ end
+
+ def diagnose
end
private
attr_reader :options