Test (Module)

In: test/unit.rb
test/unit/util/procwrapper.rb
test/unit/util/observable.rb
test/unit/util/backtracefilter.rb
test/unit/ui/tk/testrunner.rb
test/unit/ui/testrunnerutilities.rb
test/unit/ui/testrunnermediator.rb
test/unit/ui/gtk/testrunner.rb
test/unit/ui/fox/testrunner.rb
test/unit/ui/console/testrunner.rb
test/unit/testsuite.rb
test/unit/testresult.rb
test/unit/testcase.rb
test/unit/failure.rb
test/unit/error.rb
test/unit/collector.rb
test/unit/collector/objectspace.rb
test/unit/collector/dir.rb
test/unit/autorunner.rb
test/unit/assertions.rb
test/unit/assertionfailederror.rb

:nodoc:

Author:Nathaniel Talbott.
Copyright:Copyright © 2000-2002 Nathaniel Talbott. All rights reserved.
License:Ruby license.

Methods

Attributes

collector  [W] 
filters  [RW] 
output_level  [RW] 
pattern  [RW] 
runner  [W] 
suite  [R] 
to_run  [RW] 

Classes and Modules

Module Test::Unit
  ::Module Test::Unit::Assertions
  ::Module Test::Unit::Collector
  ::  ::Class Test::Unit::Collector::Dir
  ::  ::Class Test::Unit::Collector::ObjectSpace
  ::Module Test::Unit::UI
  ::  ::Module Test::Unit::UI::Console
  ::  ::  ::Class Test::Unit::UI::Console::TestRunner
  ::  ::Module Test::Unit::UI::Fox
  ::  ::  ::Class Test::Unit::UI::Fox::TestRunner
  ::  ::Module Test::Unit::UI::GTK
  ::  ::  ::Class Test::Unit::UI::GTK::TestRunner
  ::  ::Module Test::Unit::UI::TestRunnerUtilities
  ::  ::Module Test::Unit::UI::Tk
  ::  ::  ::Class Test::Unit::UI::Tk::TestRunner
  ::  ::Class Test::Unit::UI::TestRunnerMediator
  ::Module Test::Unit::Util
  ::  ::Module Test::Unit::Util::BacktraceFilter
  ::  ::Module Test::Unit::Util::Observable
  ::  ::Class Test::Unit::Util::ProcWrapper
  ::Class Test::Unit::AssertionFailedError
  ::Class Test::Unit::AutoRunner
  ::Class Test::Unit::Error
  ::Class Test::Unit::Failure
  ::Class Test::Unit::TestCase
  ::Class Test::Unit::TestResult
  ::Class Test::Unit::TestSuite

Public Class methods

[Source]

# File test/unit/autorunner.rb, line 65
      def initialize(standalone)
        Unit.run = true
        @standalone = standalone
        @runner = RUNNERS[:console]
        @collector = COLLECTORS[(standalone ? :dir : :objectspace)]
        @filters = []
        @to_run = []
        process_args
        yield(self) if(block_given?)
      end

Public Instance methods

[Source]

# File test/unit/autorunner.rb, line 76
      def process_args
        catch(:stop_processing) do
          ARGV.options do |o|
            o.program_name = "test/unit.rb"
            o.banner = "Test::Unit automatic runner."
            o.banner = "#{$0} [options] [-- untouched arguments]"

            o.on
            o.on('-r', '--runner=RUNNER', RUNNERS.keys,
              "Use the given RUNNER.",
              "(" + keyword_display(RUNNERS.keys) + ")") do |r|
              @runner = RUNNERS[r]
            end

            if(@standalone)
              o.on('-a', '--add=TORUN', Array,
                "Add TORUN to the list of things to run;",
                "can be a file or a directory.") do |a|
                @to_run.concat(a)
              end

              o.on('-p', '--pattern=PATTERN', String,
                "Match files to collect against PATTERN.") do |e|
                @pattern = Regexp.new(e.sub(%{\A/(.*)/\Z}m, '\\1'))
              end
            end

            o.on('-n', '--name=NAME', String,
              "Runs tests matching NAME.",
              "(patterns may be used).") do |n|
              n = (%{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
              case n
                when Regexp
                  @filters << proc{|t| n =~ t.method_name ? true : nil}
                else
                  @filters << proc{|t| n == t.method_name ? true : nil}
              end
            end
            
            o.on('-t', '--testcase=TESTCASE', String,
              "Runs tests in TestCases matching TESTCASE.",
              "(patterns may be used).") do |n|
              n = (%{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
              case n
                when Regexp
                  @filters << proc{|t| n =~ t.class.name ? true : nil}
                else
                  @filters << proc{|t| n == t.class.name ? true : nil}
              end
            end
            
            o.on('-v', '--verbose=[LEVEL]', OUTPUT_LEVELS.keys,
              "Set the output level (default is verbose).",
              "(" + keyword_display(OUTPUT_LEVELS.keys) + ")") do |l|
              @output_level = (l ? OUTPUT_LEVELS[l] : OUTPUT_LEVELS[:verbose])
            end

            o.on('--',
              "Stop processing options so that the",
              "remaining options will be passed to the",
              "test."){throw :stop_processing}

            o.on('-h', '--help', 'Display this help.'){puts o; exit(0)}

            o.on_tail
            o.on_tail('Deprecated options:')
            
            o.on_tail('--console', 'Console runner (use --runner).') do
              warn("Deprecated option (--console).")
              @runner = RUNNERS[:console]
            end
            
            o.on_tail('--gtk', 'GTK runner (use --runner).') do
              warn("Deprecated option (--gtk).")
              @runner = RUNNERS[:gtk]
            end
            
            o.on_tail('--fox', 'Fox runner (use --runner).') do
              warn("Deprecated option (--fox).")
              @runner = RUNNERS[:fox]
            end
            
            o.on_tail

            begin
              o.parse!
            rescue OptionParser::ParseError => e
              puts e
              puts o
              exit(1)
            end
          end
        end
        @filters << proc{false} unless(@filters.empty?)
      end

[Source]

# File test/unit/autorunner.rb, line 172
      def keyword_display(array)
        array.collect{|e| e.to_s.sub(/^(.)(.+)$/, '\\1[\\2]')}.join(", ")
      end

[Source]

# File test/unit/autorunner.rb, line 176
      def run
        @suite = @collector[self]
        @runner[self]
      end

[Validate]