Add docs to Report class

This commit is contained in:
Michael Miller 2019-02-12 23:13:03 -07:00
parent 6151912fa6
commit 6f08101828

View file

@ -1,46 +1,62 @@
module Spectator module Spectator
# Outcome of all tests in a suite. # Outcome of all tests in a suite.
class Report class Report
# Total length of time it took to execute the test suite.
# This includes examples, hooks, and framework processes.
getter runtime : Time::Span getter runtime : Time::Span
@results : Array(Result) @results : Array(Result)
# Creates the report.
# The `results` are from running the examples in the test suite.
# The `runtime` is the total time it took to execute the suite.
def initialize(results : Enumerable(Result), @runtime) def initialize(results : Enumerable(Result), @runtime)
@results = results.to_a @results = results.to_a
end end
# Number of examples.
def examples def examples
@results.size @results.size
end end
# Number of passing examples.
def successful_examples def successful_examples
@results.count(&.successful?) @results.count(&.successful?)
end end
# Number of failing examples (includes errors).
def failed_examples def failed_examples
@results.count(&.failed?) @results.count(&.failed?)
end end
# Returns a set of results for all failed examples.
def failures def failures
@results.select(&.failed?) @results.select(&.failed?)
end end
# Number of examples that had errors.
def errored_examples def errored_examples
@results.count(&.errored?) @results.count(&.errored?)
end end
# Returns a set of results for all errored examples.
def errors def errors
@results.select(&.errored?) @results.select(&.errored?)
end end
# Number of pending examples.
def pending_examples def pending_examples
@results.count(&.pending?) @results.count(&.pending?)
end end
# Length of time it took to run just example code.
# This does not include hooks,
# but it does include pre- and post-conditions.
def example_runtime def example_runtime
@results.map(&.elapsed).sum @results.map(&.elapsed).sum
end end
# Length of time spent in framework processes and hooks.
def overhead_time def overhead_time
@runtime - example_runtime @runtime - example_runtime
end end