1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Imported minitest 1.3.1 r4505.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ryan 2008-12-27 20:51:23 +00:00
parent 4985bfdc9f
commit 1cbf898172
5 changed files with 95 additions and 15 deletions

View file

@ -1,3 +1,8 @@
Sun Dec 28 05:44:44 2008 Ryan Davis <ryan@wrath.local>
* lib/minitest/*.rb: Imported minitest 1.3.1 r4505.
* test/minitest/*.rb: ditto.
Sun Dec 28 00:43:33 2008 Tanaka Akira <akr@fsij.org>
* runruby.rb: refactored to modify ENV as once.
@ -1081,7 +1086,7 @@ Sat Dec 13 12:38:16 2008 Yuki Sonoda (Yugui) <yugui@yugui.jp>
Sat Dec 13 09:17:33 2008 Ryan Davis <ryand-ruby@zenspider.com>
* lib/minitest/*.rb: Imported minitest 1.3.2 r4503.
* lib/minitest/*.rb: Imported minitest 1.3.1 r4503.
* test/minitest/test_mini_test.rb: ditto.
* lib/miniunit/autorun.rb: added (as part of r4503).

View file

@ -60,6 +60,7 @@ module Kernel
cls.class_eval(&block)
end
private :describe
end
class MiniTest::Spec < MiniTest::Unit::TestCase

View file

@ -116,9 +116,9 @@ module MiniTest
end
def assert_match exp, act, msg = nil
msg = message(msg) { "Expected #{mu_pp(act)} to match #{mu_pp(exp)}" }
msg = message(msg) { "Expected #{mu_pp(exp)} to match #{mu_pp(act)}" }
assert_respond_to act, :"=~"
(exp = /#{Regexp.escape(exp)}/) if String === exp && String === act
exp = /#{Regexp.escape(exp)}/ if String === exp && String === act
assert act =~ exp, msg
end
@ -269,7 +269,7 @@ module MiniTest
msg = message(msg) { "Expected #{mu_pp(obj)} to not be an instance of #{cls}" }
flip = (Module === obj) && ! (Module === cls) # HACK for specs
obj, cls = cls, obj if flip
refute cls === obj, msg
refute obj.instance_of?(cls), msg
end
def refute_kind_of cls, obj, msg = nil # TODO: merge with instance_of
@ -280,7 +280,9 @@ module MiniTest
end
def refute_match exp, act, msg = nil
msg = message(msg) { "Expected #{mu_pp(act)} to not match #{mu_pp(exp)}" }
msg = message(msg) { "Expected #{mu_pp(exp)} to not match #{mu_pp(act)}" }
assert_respond_to act, :"=~"
exp = /#{Regexp.escape(exp)}/ if String === exp && String === act
refute act =~ exp, msg
end
@ -313,7 +315,7 @@ module MiniTest
end
class Unit
VERSION = "1.3.2"
VERSION = "1.3.1"
attr_accessor :report, :failures, :errors, :skips
attr_accessor :test_count, :assertion_count
@ -323,7 +325,6 @@ module MiniTest
def self.autorun
at_exit {
p $!
return if $! # don't run if there was an exception
exit_code = MiniTest::Unit.new.run(ARGV)
exit false if exit_code && exit_code != 0
@ -336,9 +337,12 @@ p $!
end
def location e
e.backtrace.find { |s|
s !~ /in .(assert|refute|flunk|pass|fail|raise)/
}.sub(/:in .*$/, '')
last_before_assertion = ""
e.backtrace.reverse_each do |s|
break if s =~ /in .(assert|refute|flunk|pass|fail|raise)/
last_before_assertion = s
end
last_before_assertion.sub(/:in .*$/, '')
end
def puke klass, meth, e

View file

@ -140,6 +140,7 @@ describe MiniTest::Spec do
end
it "needs to verify mismatch" do
@assertion_count = 6
"blah".wont_match(/\d+/).must_equal false
proc { "blah".wont_match(/\w+/) }.must_raise MiniTest::Assertion
end

View file

@ -28,7 +28,7 @@ class TestMiniTest < MiniTest::Unit::TestCase
Object.send :remove_const, :ATestCase if defined? ATestCase
end
pwd = Pathname.new(File.expand_path Dir.pwd)
pwd = Pathname.new(File.expand_path(Dir.pwd))
basedir = Pathname.new(File.expand_path(MiniTest::MINI_DIR)) + 'mini'
basedir = basedir.relative_path_from(pwd).to_s
MINITEST_BASE_DIR = basedir[/\A\./] ? basedir : "./#{basedir}"
@ -96,6 +96,7 @@ class TestMiniTest < MiniTest::Unit::TestCase
assert_equal 'F', @tu.puke('SomeClass', 'method_name', exception)
assert_equal 1, @tu.failures
assert_match(/^Failure.*Oh no!/m, @tu.report.first)
assert_match("method_name(SomeClass) [unhappy]", @tu.report.first)
end
def test_class_puke_with_failure_and_flunk_in_backtrace
@ -108,6 +109,72 @@ class TestMiniTest < MiniTest::Unit::TestCase
refute @tu.report.any?{|line| line =~ /in .flunk/}
end
def test_class_puke_with_assertion_failed_and_long_backtrace
bt = (["test/test_some_class.rb:615:in `method_name'",
"#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
"test/test_some_class.rb:615:in `each'",
"test/test_some_class.rb:614:in `test_method_name'",
"#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
BT_MIDDLE +
["#{MINITEST_BASE_DIR}/test.rb:29"])
bt = util_expand_bt bt
ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
exception = MiniTest::Assertion.new "Oh no!"
exception.set_backtrace bt
assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
assert_equal 1, @tu.failures
assert_match(/^Failure.*Oh no!/m, @tu.report.first)
assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
end
def test_class_puke_with_assertion_failed_and_user_defined_assertions
bt = (["lib/test/my/util.rb:16:in `another_method_name'",
"#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
"lib/test/my/util.rb:15:in `block in assert_something'",
"lib/test/my/util.rb:14:in `each'",
"lib/test/my/util.rb:14:in `assert_something'",
"test/test_some_class.rb:615:in `each'",
"test/test_some_class.rb:614:in `test_method_name'",
"#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
BT_MIDDLE +
["#{MINITEST_BASE_DIR}/test.rb:29"])
bt = util_expand_bt bt
ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
exception = MiniTest::Assertion.new "Oh no!"
exception.set_backtrace bt
assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
assert_equal 1, @tu.failures
assert_match(/^Failure.*Oh no!/m, @tu.report.first)
assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
end
def test_class_puke_with_flunk_and_user_defined_assertions
bt = (["lib/test/my/util.rb:16:in `flunk'",
"#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
"lib/test/my/util.rb:15:in `block in assert_something'",
"lib/test/my/util.rb:14:in `each'",
"lib/test/my/util.rb:14:in `assert_something'",
"test/test_some_class.rb:615:in `each'",
"test/test_some_class.rb:614:in `test_method_name'",
"#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
BT_MIDDLE +
["#{MINITEST_BASE_DIR}/test.rb:29"])
bt = util_expand_bt bt
ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
exception = MiniTest::Assertion.new "Oh no!"
exception.set_backtrace bt
assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
assert_equal 1, @tu.failures
assert_match(/^Failure.*Oh no!/m, @tu.report.first)
assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
end
def test_class_puke_with_non_failure_exception
exception = Exception.new("Oh no again!")
assert_equal 'E', @tu.puke('SomeClass', 'method_name', exception)
@ -465,13 +532,13 @@ class TestMiniTestTestCase < MiniTest::Unit::TestCase
def test_assert_match
@assertion_count = 2
@tc.assert_match "blah blah blah", /\w+/
@tc.assert_match(/\w+/, "blah blah blah")
end
def test_assert_match_triggered
@assertion_count = 2
util_assert_triggered 'Expected /\d+/ to match "blah blah blah".' do
@tc.assert_match "blah blah blah", /\d+/
@tc.assert_match(/\d+/, "blah blah blah")
end
end
@ -795,12 +862,14 @@ FILE:LINE:in `test_assert_raises_triggered_subclass'
end
def test_refute_match
@tc.refute_match "blah blah blah", /\d+/
@assertion_count = 2
@tc.refute_match(/\d+/, "blah blah blah")
end
def test_refute_match_triggered
@assertion_count = 2
util_assert_triggered 'Expected /\w+/ to not match "blah blah blah".' do
@tc.refute_match "blah blah blah", /\w+/
@tc.refute_match(/\w+/, "blah blah blah")
end
end