Module: Test

Module | Test
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/gtk2/testrunner.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

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

### Methods

keyword_display new options process_args run

### Classes and Modules

Module Test::Unit

### Attributes

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

### Public Class methods

new(standalone) {|self| ...}

[Source]

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

### Public Instance methods

keyword_display(array)

[Source]

    # File test/unit/autorunner.rb, line 191
          def keyword_display(array)
            list = array.collect {|e, *| e.to_s}
            Array === array or list.sort!
            list.collect {|e| e.sub(/^(.)([A-Za-z]+)(?=\w*$)/, '\\1[\\2]')}.join(", ")
          end

options()

[Source]

    # File test/unit/autorunner.rb, line 100
          def options
            @options ||= OptionParser.new do |o|
              o.banner = "Test::Unit automatic runner."
              o.banner << "\nUsage: #{$0} [options] [-- untouched arguments]"

              o.on
              o.on('-r', '--runner=RUNNER', RUNNERS,
                   "Use the given RUNNER.",
                   "(" + keyword_display(RUNNERS) + ")") do |r|
                @runner = 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

                @pattern = []
                o.on('-p', '--pattern=PATTERN', Regexp,
                     "Match files to collect against PATTERN.") do |e|
                  @pattern << e
                end

                @exclude = []
                o.on('-x', '--exclude=PATTERN', Regexp,
                     "Ignore files to collect against PATTERN.") do |e|
                  @exclude << e
                end
              end

              o.on('-n', '--name=NAME', String,
                   "Runs tests matching NAME.",
                   "(patterns may be used).") do |n|
                n = (%r{\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 = (%r{\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,
                   "Set the output level (default is verbose).",
                   "(" + keyword_display(OUTPUT_LEVELS) + ")") do |l|
                @output_level = l || UI::VERBOSE
              end

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

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

              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
            end
          end

process_args(args = ARGV)

[Source]

    # File test/unit/autorunner.rb, line 86
          def process_args(args = ARGV)
            begin
              @to_run.concat options.parse!(args)
            rescue OptionParser::ParseError => e
              puts e
              puts options
              $! = nil
              abort
            else
              @filters << proc{false} unless(@filters.empty?)
            end
            not @to_run.empty?
          end

run()

[Source]

    # File test/unit/autorunner.rb, line 197
          def run
            @suite = @collector[self]
            result = @runner[self] or return false
            result.run(@suite, @output_level).passed?
          end

[Validate]