Class: Testa::Reporter
- Inherits:
-
Object
- Object
- Testa::Reporter
- Defined in:
- lib/testa.rb
Overview
Reporter object print out test result. It should have the following methods:
#after_each(result)
#after_all(results)
Constant Summary collapse
- CHARS =
{:passed => ".", :failed => "F", :error => "E", :todo => "*"}
Instance Method Summary collapse
- #after_all(results) ⇒ Object
- #after_each(result) ⇒ Object
-
#initialize(out = nil) ⇒ Reporter
constructor
A new instance of Reporter.
Constructor Details
#initialize(out = nil) ⇒ Reporter
108 109 110 111 112 113 114 |
# File 'lib/testa.rb', line 108 def initialize(out=nil) @out = out || $stdout @stat = {:passed => 0, :failed => 0, :error => 0, :todo => 0} end |
Instance Method Details
#after_all(results) ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/testa.rb', line 122 def after_all(results) @out.puts results.each {|result| case result.status when :failed, :error @out.puts @out.puts "[#{result.status.upcase}] #{result.test.location}", (result.test.description || "*NO DESCRIPTION*") @out.puts "\t#{result.exception.message}" @out.puts result.exception.backtrace.reject {|m| m[__FILE__] } when :todo @out.puts @out.puts "[#{result.status.upcase}] #{result.test.location}", result.test.description || "*NO DESCRIPTION*" end } @out.puts @out.puts " PASSED: #{@stat[:passed]}" @out.puts " FAILED: #{@stat[:failed]}" @out.puts " ERROR: #{@stat[:error]}" @out.puts " TODO: #{@stat[:todo]}" @out.puts " TOTAL: #{@stat.values.inject(:+)}" @out.puts end |
#after_each(result) ⇒ Object
116 117 118 119 120 |
# File 'lib/testa.rb', line 116 def after_each(result) return unless result @stat[result.status] += 1 @out.print CHARS[result.status] end |