Parent

Spork::Runner

This is used by bin/spork. It’s wrapped in a class because it’s easier to test that way.

Attributes

test_framework[R]
options[R]

Public Class Methods

new(args, output, error) click to toggle source
    # File lib/spork/runner.rb, line 12
12:     def initialize(args, output, error)
13:       raise ArgumentError, "expected array of args" unless args.is_a?(Array)
14:       @output = output
15:       @error = error
16:       @options = {}
17:       opt = OptionParser.new
18:       opt.banner = "Usage: spork [test framework name] [options]\n\n"
19:       
20:       opt.separator "Options:"
21:       opt.on("-b", "--bootstrap")  {|ignore| @options[:bootstrap] = true }
22:       opt.on("-d", "--diagnose")  {|ignore| @options[:diagnose] = true }
23:       opt.on("-h", "--help")  {|ignore| @options[:help] = true }
24:       opt.on("-p", "--port [PORT]") {|port| @options[:port] = port }
25:       non_option_args = args.select { |arg| ! args[0].match(/^-/) }
26:       @options[:server_matcher] = non_option_args[0]
27:       opt.parse!(args)
28:       
29:       if @options[:help]
30:         @output.puts opt
31:         @output.puts
32:         @output.puts supported_test_frameworks_text
33:         exit(0)
34:       end
35:     end
run(args, output, error) click to toggle source
    # File lib/spork/runner.rb, line 8
 8:     def self.run(args, output, error)
 9:       self.new(args, output, error).run
10:     end

Public Instance Methods

find_test_framework() click to toggle source

Returns a server for the specified (or the detected default) testing framework. Returns nil if none detected, or if the specified is not supported or available.

    # File lib/spork/runner.rb, line 47
47:     def find_test_framework
48:       Spork::TestFramework.factory(@output, @error, options[:server_matcher])
49:     rescue Spork::TestFramework::NoFrameworksAvailable => e
50:       @error.puts e.message
51:     rescue Spork::TestFramework::FactoryException => e
52:       @error.puts "#{e.message}\n\n#{supported_test_frameworks_text}"
53:     end
run() click to toggle source
    # File lib/spork/runner.rb, line 55
55:     def run
56:       return false unless test_framework = find_test_framework
57:       ENV["DRB"] = 'true'
58:       @error.puts "Using #{test_framework.short_name}"
59:       @error.flush
60: 
61:       case
62:       when options[:bootstrap]
63:         test_framework.bootstrap
64:       when options[:diagnose]
65:         require 'spork/diagnoser'
66:         
67:         Spork::Diagnoser.install_hook!(test_framework.entry_point)
68:         test_framework.preload
69:         Spork::Diagnoser.output_results(@output)
70:         return true
71:       else
72:         Spork.using_spork!
73:         run_strategy = Spork::RunStrategy.factory(test_framework)
74:         return(false) unless run_strategy.preload
75:         Spork::Server.run(:port => @options[:port] || test_framework.default_port, :run_strategy => run_strategy)
76:         return true
77:       end
78:     end
supported_test_frameworks_text() click to toggle source
    # File lib/spork/runner.rb, line 37
37:     def supported_test_frameworks_text
38:       text = StringIO.new
39:       
40:       text.puts "Supported test frameworks:"
41:       text.puts Spork::TestFramework.supported_test_frameworks.sort { |a,b| a.short_name <=> b.short_name }.map { |s| (s.available? ? '(*) ' : '( ) ') + s.short_name }
42:       text.puts "\nLegend: ( ) - not detected in project   (*) - detected\n"
43:       text.string
44:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.