diff options
Diffstat (limited to 'lib/test/unit.rb')
-rw-r--r-- | lib/test/unit.rb | 130 |
1 files changed, 10 insertions, 120 deletions
diff --git a/lib/test/unit.rb b/lib/test/unit.rb index 08e57f2f17..6fab874f23 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -19,20 +19,6 @@ # have tests for it. # # -# == Installation -# -# Run: -# * ruby setup.rb config -# * ruby setup.rb setup -# * ruby setup.rb install -# -# Note that the runit compatibility layer will *not* be installed if you -# already have RubyUnit installed. -# -# Mac OS X users should also note that setup.rb will fail unless they -# execute 'unlimit stacksize' before running it. -# -# # == Notes # # Test::Unit has grown out of and superceded Lapidary. @@ -272,114 +258,18 @@ require 'test/unit/testcase' -require 'test/unit/ui/testrunnermediator' -require 'test/unit/collector/objectspace' - -at_exit { - require 'optparse' - if (!Test::Unit::UI::TestRunnerMediator.run?) - output_level = nil - runners = { - :console => proc do |suite| - require 'test/unit/ui/console/testrunner' - output_level ||= Test::Unit::UI::Console::TestRunner::NORMAL - passed = Test::Unit::UI::Console::TestRunner.run(suite, output_level).passed? - exit(passed ? 0 : 1) - end, - :gtk => proc do |suite| - require 'test/unit/ui/gtk/testrunner' - Test::Unit::UI::GTK::TestRunner.run(suite) - end, - :fox => proc do |suite| - require 'test/unit/ui/fox/testrunner' - Test::Unit::UI::Fox::TestRunner.run(suite) - end, - } - - runner = runners[:console] - filters = [] - 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]" +require 'test/unit/autorunner' - o.on - runner_display = runners.keys.collect{|r| r.to_s.sub(/^(.)/, '[\\1]')}.join(", ") - o.on('-r', '--runner=RUNNER', runners.keys, - "Use the given runner.", - "(" + runner_display + ")"){|r| runner = runners[r]} - 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} - else - filters << proc{|t| n == t.method_name} - 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} - else - filters << proc{|t| n == t.class.name} - end - end - o.on('-v', '--verbose=[LEVEL]', (0..3).to_a.collect{|i| i.to_s}, - "Set output level.", - "Levels are:", - " 0 = SILENT", - " 1 = PROGRESS_ONLY", - " 2 = NORMAL", - " 3 = VERBOSE (default)", - " Only valid for the console runner."){|l| output_level = (l ? l.to_i : 3)} - o.on('--', - "Stop processing options so that", - "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 +module Test + module Unit + def self.run=(flag) + @run = flag end - if(output_level && !(runner == runners[:console])) - puts "Invalid arguments: You can only specify an output level with the console runner." - exit(1) + def self.run? + @run ||= false end - - collector = Test::Unit::Collector::ObjectSpace::new - collector.filter = filters - - suite_name = $0.sub(/\.rb$/, '') - runner.call(collector.collect(suite_name)) end -} +end + +at_exit{Test::Unit::AutoRunner.run($0) unless(Test::Unit.run?)} |