def option_parser
OptionParser.new do |opts|
opts.banner = "Turn - Pretty Unit Test Runner for Ruby"
opts.separator " "
opts.separator "SYNOPSIS"
opts.separator " turn [OPTIONS] [RUN MODE] [OUTPUT MODE] [TEST GLOBS ...]"
opts.separator " "
opts.separator "GENERAL OPTIONS"
opts.on('-I', '--loadpath=PATHS', "add paths to $LOAD_PATH") do |path|
@loadpath.concat(path.split(':'))
end
opts.on('-r', '--require=LIBS', "require libraries") do |lib|
@requires.concat(lib.split(':'))
end
opts.on('-n', '--name=PATTERN', "only run tests that match PATTERN") do |pattern|
if pattern =~ /\/(.*)\//
@pattern = Regexp.new($1)
else
@pattern = Regexp.new(pattern, Regexp::IGNORECASE)
end
end
opts.on('-t', '--testcase=PATTERN', "only run testcases that match PATTERN") do |pattern|
if pattern =~ /\/(.*)\//
@matchcase = Regexp.new($1)
else
@matchcase = Regexp.new(pattern, Regexp::IGNORECASE)
end
end
opts.on('-m', '--minitest', "Force use of MiniTest framework") do
@framework = :minitest
end
opts.on("-T", '--trace', "Turn on invoke/execute tracing, enable full backtrace") do
@trace = true
end
opts.on('--log', "log results to a file") do
@log = true
end
opts.on('--live', "do not use local load path") do
@live = true
end
opts.separator " "
opts.separator "RUN MODES"
opts.on('--normal', "run all tests in a single process [default]") do
@runmode = nil
end
opts.on('--solo', "run each test in a separate process") do
@runmode = :solo
end
opts.on('--cross', "run each pair of test files in a separate process") do
@runmode = :cross
end
opts.separator " "
opts.separator "OUTPUT MODES"
opts.on('--outline', '-O', "turn's original case/test outline mode [default]") do
@outmode = :outline
end
opts.on('--progress', '-P', "indicates progress with progress bar") do
@outmode = :progress
end
opts.on('--dotted', '-D', "test-unit's traditonal dot-progress mode") do
@outmode = :dotted
end
opts.on('--pretty', '-T', "new pretty output mode") do
@outmode = :pretty
end
opts.on('--cue', '-C', "cue for action on each failure/error") do
@outmode = :cue
end
opts.on('--marshal', '-M', "dump output as YAML (normal run mode only)") do
@runmode = :marshal
@outmode = :marshal
end
opts.separator " "
opts.separator "COMMAND OPTIONS"
opts.on('--debug', "turn debug mode on") do
$VERBOSE = true
$DEBUG = true
end
opts.on_tail('--version', "display version") do
puts VERSION
exit
end
opts.on_tail('--help', '-h', "display this help information") do
puts opts
exit
end
end
end