mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Initial revision
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4a44a6d474
commit
04f2b8f7bf
23 changed files with 2337 additions and 0 deletions
68
lib/test/unit/error.rb
Normal file
68
lib/test/unit/error.rb
Normal file
|
@ -0,0 +1,68 @@
|
|||
# :nodoc:
|
||||
#
|
||||
# Author:: Nathaniel Talbott.
|
||||
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
||||
# License:: Ruby license.
|
||||
|
||||
module Test
|
||||
module Unit
|
||||
|
||||
# Encapsulates an error in a test. Created by
|
||||
# Test::Unit::TestCase when it rescues an exception thrown
|
||||
# during the processing of a test.
|
||||
class Error
|
||||
attr_reader(:location, :exception)
|
||||
|
||||
SINGLE_CHARACTER = 'E'
|
||||
|
||||
# Creates a new Error with the given location and
|
||||
# exception.
|
||||
def initialize(location, exception)
|
||||
@location = location
|
||||
@exception = exception
|
||||
end
|
||||
|
||||
# Returns a single character representation of an error.
|
||||
def single_character_display
|
||||
SINGLE_CHARACTER
|
||||
end
|
||||
|
||||
# Returns the message associated with the error.
|
||||
def message
|
||||
"#{@exception.class.name}: #{@exception.message}"
|
||||
end
|
||||
|
||||
# Returns a brief version of the error description.
|
||||
def short_display
|
||||
"#{@location}:\n#{message}"
|
||||
end
|
||||
|
||||
# Returns a verbose version of the error description.
|
||||
def long_display
|
||||
backtrace = self.class.filter(@exception.backtrace).join("\n ")
|
||||
"Error!!!\n#{short_display}\n #{backtrace}"
|
||||
end
|
||||
|
||||
# Overridden to return long_display.
|
||||
def to_s
|
||||
long_display
|
||||
end
|
||||
|
||||
SEPARATOR_PATTERN = '[\\\/:]'
|
||||
def self.filter(backtrace) # :nodoc:
|
||||
@test_unit_patterns ||= $:.collect {
|
||||
| path |
|
||||
/^#{Regexp.escape(path)}#{SEPARATOR_PATTERN}test#{SEPARATOR_PATTERN}unit#{SEPARATOR_PATTERN}/
|
||||
}.push(/#{SEPARATOR_PATTERN}test#{SEPARATOR_PATTERN}unit\.rb/)
|
||||
|
||||
return backtrace.delete_if {
|
||||
| line |
|
||||
@test_unit_patterns.detect {
|
||||
| pattern |
|
||||
line =~ pattern
|
||||
}
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue