Class: DottedFormatter
Direct Known Subclasses
DescribeFormatter, FileFormatter, HtmlFormatter, MethodFormatter, SpecdocFormatter, SpinnerFormatter, SummaryFormatter, UnitdiffFormatter, YamlFormatter
Instance Attribute Summary collapse
-
#exceptions ⇒ Object
readonly
Returns the value of attribute exceptions.
-
#tally ⇒ Object
readonly
Returns the value of attribute tally.
-
#timer ⇒ Object
readonly
Returns the value of attribute timer.
Instance Method Summary collapse
-
#after(state = nil) ⇒ Object
Callback for the MSpec :after event.
-
#before(state = nil) ⇒ Object
Callback for the MSpec :before event.
-
#exception(exception) ⇒ Object
Callback for the MSpec :exception event.
-
#exception? ⇒ Boolean
Returns true if any exception is raised while running an example.
-
#failure? ⇒ Boolean
Returns true if all exceptions during the evaluation of an example are failures rather than errors.
-
#finish ⇒ Object
Callback for the MSpec :finish event.
-
#initialize(out = nil) ⇒ DottedFormatter
constructor
A new instance of DottedFormatter.
-
#print(*args) ⇒ Object
A convenience method to allow printing to different outputs.
-
#register ⇒ Object
Creates the
TimerAction
andTallyAction
instances and registers them.
Constructor Details
#initialize(out = nil) ⇒ DottedFormatter
Returns a new instance of DottedFormatter.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 8 def initialize(out=nil) @exception = @failure = false @exceptions = [] @count = 0 if out.nil? @out = $stdout else @out = File.open out, "w" end end |
Instance Attribute Details
#exceptions ⇒ Object (readonly)
Returns the value of attribute exceptions.
6 7 8 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 6 def exceptions @exceptions end |
#tally ⇒ Object (readonly)
Returns the value of attribute tally.
6 7 8 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 6 def tally @tally end |
#timer ⇒ Object (readonly)
Returns the value of attribute timer.
6 7 8 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 6 def timer @timer end |
Instance Method Details
#after(state = nil) ⇒ Object
Callback for the MSpec :after event. Prints an indicator for the result of evaluating this example as follows:
. = No failure or error
F = An SpecExpectationNotMetError was raised
E = Any exception other than SpecExpectationNotMetError
70 71 72 73 74 75 76 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 70 def after(state = nil) unless exception? print "." else print failure? ? "F" : "E" end end |
#before(state = nil) ⇒ Object
Callback for the MSpec :before event. Resets the #exception?
and #failure
flags.
50 51 52 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 50 def before(state = nil) @failure = @exception = false end |
#exception(exception) ⇒ Object
Callback for the MSpec :exception event. Stores the ExceptionState
object to generate the list of backtraces after all the specs are run. Also updates the internal #exception?
and #failure?
flags.
58 59 60 61 62 63 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 58 def exception(exception) @count += 1 @failure = @exception ? @failure && exception.failure? : exception.failure? @exception = true @exceptions << exception end |
#exception? ⇒ Boolean
Returns true if any exception is raised while running an example. This flag is reset before each example is evaluated.
36 37 38 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 36 def exception? @exception end |
#failure? ⇒ Boolean
Returns true if all exceptions during the evaluation of an example are failures rather than errors. See ExceptionState#failure
. This flag is reset before each example is evaluated.
44 45 46 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 44 def failure? @failure end |
#finish ⇒ Object
Callback for the MSpec :finish event. Prints a description and backtrace for every exception that occurred while evaluating the examples.
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 81 def finish print "\n" count = 0 @exceptions.each do |exc| outcome = exc.failure? ? "FAILED" : "ERROR" print "\n#{count += 1})\n#{exc.description} #{outcome}\n" print exc., "\n" print exc.backtrace, "\n" end print "\n#{@timer.format}\n\n#{@tally.format}\n" end |
#print(*args) ⇒ Object
A convenience method to allow printing to different outputs.
94 95 96 97 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 94 def print(*args) @out.print(*args) @out.flush rescue nil #IronRuby throws a .NET exception on IO.flush end |
#register ⇒ Object
Creates the TimerAction
and TallyAction
instances and registers them. Registers self
for the :exception
, :before
, :after
, and :finish
actions.
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/mspec/runner/formatters/dotted.rb', line 22 def register (@timer = TimerAction.new).register (@tally = TallyAction.new).register @counter = @tally.counter MSpec.register :exception, self MSpec.register :before, self MSpec.register :after, self MSpec.register :finish, self end |