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