Class: Turn::Command

### Home Classes Methods

### In Files

- lib/turn/command.rb

### Parent

Object

### Methods

- ::main
- ::new
- #main
- #option_parser

### Files

- History.txt
- LICENSE-GPL2.txt
- LICENSE-MIT.txt
- LICENSE-RUBY.txt
- LICENSE.txt
- Release.txt
- Version.txt

### Class/Module Index

Quicksearch

- Turn
- Turn::Colorize
- Turn::Command
- Turn::Configuration
- Turn::Controller
- Turn::CrossRunner
- Turn::CueReporter
- Turn::DotReporter
- Turn::IsoRunner
- Turn::MarshalReporter
- Turn::MiniRunner
- Turn::OutlineReporter
- Turn::PrettyReporter
- Turn::ProgressReporter
- Turn::Reporter
- Turn::SoloRunner
- Turn::TestCase
- Turn::TestMethod
- Turn::TestRunner
- Turn::TestSuite
- Test
- Test::Unit
- Test::Unit::Failure
- Object
- String

No matching classes.

# Turn::Command

Turn - Pretty Unit Test Runner for Ruby

SYNOPSIS

    turn [OPTIONS] [RUN MODE] [OUTPUT MODE] [TEST GLOBS ...]

GENERAL OPTIONS

    -I, --loadpath=PATHS             add paths to $LOAD_PATH
    -r, --require=LIBS               require libraries
    -n, --name=PATTERN               only run tests that match PATTERN
    -c, --case=PATTERN               only run test cases that match PATTERN
    -b, --backtrace, --trace INT     Limit the number of lines of backtrace.
        --natural                    Show natualized test names.
        --[no-]ansi                  Force use of ANSI codes on or off.
        --log                        log results to a file
        --live                       do not use local load path

RUN MODES

    --normal                     run all tests in a single process [default]
    --solo                       run each test in a separate process
    --cross                      run each pair of test files in a separate process

OUTPUT MODES

    -O, --outline                    turn's original case/test outline mode [default]
    -P, --progress                   indicates progress with progress bar
    -D, --dotted                     test-unit's traditonal dot-progress mode
    -R, -T, --pretty                 new pretty output mode
    -C, --cue                        cue for action on each failure/error
    -M, --marshal                    dump output as YAML (normal run mode only)

COMMAND OPTIONS

        --debug                      turn debug mode on
        --version                    display version
    -h, --help                       display this help information

### Attributes

ansi[R]

Force ANSI use on or off.

live[R]

Do not use local loadpath.

loadpath[R]

List of paths to add to $LOAD_PATH

log[R]

Log output.

mark[R]

Show extra information.

matchcase[R]

Only run testcases matching this pattern.

natural[R]

Use natural test case names.

outmode[R]

Output mode.

pattern[R]

Only run tests matching this pattern.

requires[R]

Libraries to require before running tests.

runmode[R]

Run mode.

trace[R]

Enable full backtrace

verbose[R]

Show extra information.

### Public Class Methods

main(*argv) click to toggle source

Shortcut for new.main(*argv)

    # File lib/turn/command.rb, line 42
    def self.main(*argv)
      new.main(*argv)
    end

new() click to toggle source

    # File lib/turn/command.rb, line 89
    def initialize
      @live      = nil
      @log       = nil
      @pattern   = nil
      @matchcase = nil
      @loadpath  = []
      @requires  = []
      @runmode   = nil
      @outmode   = nil
      @trace     = nil
      @natural   = false
      @verbose   = false
      @mark      = nil
      @ansi      = nil
    end

### Public Instance Methods

main(*argv) click to toggle source

Run command.

    # File lib/turn/command.rb, line 245
    def main(*argv)
      option_parser.parse!(argv)

      @loadpath = ['lib'] if loadpath.empty?

      tests = ARGV.empty? ? nil : argv.dup

      #config = Turn::Configuration.new do |c|
      config = Turn.config do |c|
        c.live      = live
        c.log       = log
        c.loadpath  = loadpath
        c.requires  = requires
        c.tests     = tests
        c.runmode   = runmode
        c.format    = outmode
        c.pattern   = pattern
        c.matchcase = matchcase
        c.trace     = trace
        c.natural   = natural
        c.verbose   = verbose
        c.mark      = mark
        c.ansi      = ansi unless ansi.nil?
      end

      controller = Turn::Controller.new(config)

      result = controller.start

      if result
        exit (result.passed? ? 0 : -1)
      else # no tests
        exit -1
      end
    end

option_parser() click to toggle source

    # File lib/turn/command.rb, line 106
    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('-c', '--case=PATTERN', "only run test cases that match PATTERN") do |pattern|
          if pattern =~ /\/(.*)\//
            @matchcase = Regexp.new($1)
          else
            @matchcase = Regexp.new(pattern, Regexp::IGNORECASE)
          end
        end

        opts.on('-m', '--mark=SECONDS', "Mark test if it exceeds runtime threshold.") do |int|
          @mark = int.to_i
        end

        opts.on('-b', '--backtrace', '--trace INT', "Limit the number of lines of backtrace.") do |int|
          @trace = int
        end

        opts.on('--natural', "Show natualized test names.") do |bool|
          @natural = bool
        end

        opts.on('-v', '--verbose', "Show extra information.") do |bool|
          @verbose = bool
        end

        opts.on('--[no-]ansi', "Force use of ANSI codes on or off.") do |bool|
          @ansi = bool
        end

        # Turn does not support Test::Unit 2.0+
        #opts.on('-u', '--testunit', "Force use of TestUnit framework") do
        #  @framework = :testunit
        #end

        opts.on('--log', "log results to a file") do #|path|
          @log = true # TODO: support path/file
        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.on('--load', "") do
        #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', '-R', '-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
          $DEBUG   = true
        end

        opts.on('--warn', "turn warnings on") do
          $VERBOSE = true
        end

        opts.on_tail('--version', "display version") do
          puts VERSION
          exit
        end

        opts.on_tail('-h', '--help', "display this help information") do
          puts opts
          exit
        end
      end
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.