Class: Turn::PrettyReporter
- Defined in:
- lib/turn/reporters/pretty_reporter.rb
Overview
Pretty Reporter (by Paydro)
Example output:
TestCaseName:
PASS test: Succesful test case. (0:00:02:059)
ERROR test: Bogus test case. (0:00:02:059)
FAIL test: Failed test case. (0:00:02:059)
Constant Summary collapse
- TAB_SIZE =
Second column left padding in chars.
10
- TRACE_MARK =
Character to put in front of backtrace.
'@ '
Constants included from Colorize
Instance Attribute Summary
Attributes inherited from Reporter
Instance Method Summary collapse
-
#error(exception, message = nil) ⇒ Object
Invoked when a test raises an exception.
-
#fail(assertion, message = nil) ⇒ Object
Invoked when a test raises an assertion.
-
#finish_case(kase) ⇒ Object
Invoked after all tests in a testcase have ben run.
-
#finish_suite(suite) ⇒ Object
After all tests are run, this is the last observable action.
-
#pass(message = nil) ⇒ Object
Invoked when a test passes.
-
#skip(exception, message = nil) ⇒ Object
Invoked when a test is skipped.
-
#start_case(kase) ⇒ Object
Invoked before a testcase is run.
-
#start_suite(suite) ⇒ Object
At the very start, before any testcases are run, this is called.
-
#start_test(test) ⇒ Object
Invoked before a test is run.
Methods inherited from Reporter
Methods included from Colorize
blue, bold, color_supported?, colorize?, #colorize?, error, fail, green, included, magenta, pass, red, skip
Constructor Details
This class inherits a constructor from Turn::Reporter
Instance Method Details
#error(exception, message = nil) ⇒ Object
Invoked when a test raises an exception.
69 70 71 72 73 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 69 def error(exception, =nil) ERROR prettify(, exception) end |
#fail(assertion, message = nil) ⇒ Object
Invoked when a test raises an assertion.
62 63 64 65 66 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 62 def fail(assertion, =nil) FAIL prettify(, assertion) end |
#finish_case(kase) ⇒ Object
Invoked after all tests in a testcase have ben run.
83 84 85 86 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 83 def finish_case(kase) # Print newline is there any tests in suite io.puts if kase.size > 0 end |
#finish_suite(suite) ⇒ Object
After all tests are run, this is the last observable action.
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 89 def finish_suite(suite) total = "%d tests" % suite.count_tests passes = "%d passed" % suite.count_passes assertions = "%d assertions" % suite.count_assertions failures = "%d failures" % suite.count_failures errors = "%d errors" % suite.count_errors skips = "%d skips" % suite.count_skips io.puts "Finished in %.6f seconds." % (Time.now - @time) io.puts io.puts [ Colorize.bold(total), Colorize.pass(passes), Colorize.fail(failures), Colorize.error(errors), Colorize.skip(skips), assertions ].join(", ") # Please keep this newline, since it will be useful when after test case # there will be other lines. For example "rake aborted!" or kind of. io.puts end |
#pass(message = nil) ⇒ Object
Invoked when a test passes.
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 50 def pass(=nil) PASS if = Colorize.magenta() = .to_s.tabto(TAB_SIZE) io.puts() end end |
#skip(exception, message = nil) ⇒ Object
Invoked when a test is skipped.
76 77 78 79 80 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 76 def skip(exception, =nil) SKIP prettify(, exception) end |
#start_case(kase) ⇒ Object
Invoked before a testcase is run.
37 38 39 40 41 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 37 def start_case(kase) # Print case name if there any tests in suite # TODO: Add option which will show all test cases, even without tests? io.puts kase.name if kase.size > 0 end |
#start_suite(suite) ⇒ Object
At the very start, before any testcases are run, this is called.
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 22 def start_suite(suite) @suite = suite @time = Time.now io.puts Colorize.bold("Loaded Suite #{suite.name}") io.puts if suite.seed io.puts "Started at #{Time.now} w/ seed #{suite.seed}." else io.puts "Started at #{Time.now}." end io.puts end |
#start_test(test) ⇒ Object
Invoked before a test is run.
44 45 46 47 |
# File 'lib/turn/reporters/pretty_reporter.rb', line 44 def start_test(test) @test_time = Time.now @test = test end |