aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/test/unit.rb33
2 files changed, 26 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index f701549d02..f3b5807dff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 15 02:42:51 2010 Aaron Patterson <aaron@tenderlovemaking.com>
+
+ * lib/test/unit.rb (setup_argv): convert to using optparse, adding
+ --help and -I. [ruby-core:30154]
+
Thu Jul 15 00:35:09 2010 Tanaka Akira <akr@fsij.org>
* time.c (localtime_with_gmtoff_zone): renamed from
diff --git a/lib/test/unit.rb b/lib/test/unit.rb
index fd7fe06f43..4aecc49450 100644
--- a/lib/test/unit.rb
+++ b/lib/test/unit.rb
@@ -3,6 +3,7 @@
require 'minitest/unit'
require 'test/unit/assertions'
require 'test/unit/testcase'
+require 'optparse'
module Test
module Unit
@@ -13,19 +14,27 @@ module Test
files = []
reject = []
original_argv = original_argv.dup
- while arg = original_argv.shift
- case arg
- when '-v'
- minitest_argv << arg
- when /\A(-n)(.+)?/, /\A(--name)=?\b(.+)?/
- minitest_argv << $1
- minitest_argv << ($2 || original_argv.shift)
- when /\A-x(.+)?/
- reject << ($1 || original_argv.shift)
- else
- files << arg
+ OptionParser.new do |parser|
+ parser.default_argv = original_argv
+
+ parser.on '-v', '--verbose' do |v|
+ minitest_argv << '-v' if v
end
- end
+
+ parser.on '-n', '--name TESTNAME' do |name|
+ minitest_argv << '-n'
+ minitest_argv << name
+ end
+
+ parser.on '-x', '--exclude PATTERN' do |pattern|
+ reject << pattern
+ end
+
+ parser.on '-Idirectory' do |dirs|
+ dirs.split(':').each { |d| $LOAD_PATH.unshift d }
+ end
+ end.parse!
+ files = original_argv
if block_given?
files = yield files