lib/tap/test/unit.rb in tap-test-0.6.0 vs lib/tap/test/unit.rb in tap-test-0.6.1
- old
+ new
@@ -39,40 +39,37 @@
# :stopdoc:
# Implementing skip_test in the original Test::Unit is considerably more
# tricky than in the Mini::Test Test::Unit.
class Test::Unit::TestCase
class << self
- alias tap_original_test_case_inherited inherited
-
- def inherited(child)
- super
- tap_original_test_case_inherited(child)
- child.instance_variable_set(:@skip_messages, [])
- child.instance_variable_set(:@run_test_suite, true)
- end
-
# Causes a test suite to be skipped. If a message is given, it will
# print and notify the user the test suite has been skipped.
def skip_test(msg=nil)
- @run_test_suite = false
- @skip_messages << msg
+ @skip_test_suite = true
+ skip_messages << msg
end
-
+
alias :original_suite :suite
# Modifies the default suite method to skip the suit unless
# run_test_suite is true. If the test is skipped, the skip_messages
# will be printed along with the default 'Skipping <Test>' message.
def suite # :nodoc:
- if @run_test_suite
- original_suite
- else
- skip_message = @skip_messages.compact.join(', ')
+ if (@skip_test_suite ||= false)
+ skip_message = skip_messages.compact.join(', ')
puts "Skipping #{name}#{skip_message.empty? ? '' : ': ' + skip_message}"
# return an empty test suite of the appropriate name
Test::Unit::TestSuite.new(name)
+ else
+ original_suite
end
+ end
+
+ protected
+
+ def skip_messages # :nodoc:
+ @skip_messages ||= []
end
end
end
Test::Unit::TestCase.extend Tap::Test