class Campa::Core::TestReport
Uses the result of a {Test#call} execution to show a human readable summary of a test execution.
Public Instance Methods
call(result, env:)
click to toggle source
Receives the result of {Test#call} and shows a (hopefully) useful test summary.
@param result [List] result of calling {Test#call} @param env [Context] where object bound to {SYMBOL_OUT} will be searched
as an alternative to $stdout
@return [Boolean] true if all tests were successful
(<b>false</b> otherwhise).
# File lib/campa/core/test_report.rb, line 14 def call(result, env:) success, failures = %i[success failures].map { |t| filter(t, result) } out = env[SYMBOL_OUT] || $stdout show_summary(success, failures, out) end
Private Instance Methods
failure_summary(failures, out)
click to toggle source
# File lib/campa/core/test_report.rb, line 56 def failure_summary(failures, out) [ "FAIL!", " #{failures.length} tests failed", " they are:", ].each { |str| out.puts str } failures.each { |t| out.puts " - #{t}" } false end
filter(type, result)
click to toggle source
# File lib/campa/core/test_report.rb, line 32 def filter(type, result) filtered = result .to_a .find { |l| l.head == Symbol.new(type.to_s) } return [] if filtered.nil? label_only(filtered) end
label_only(filtered)
click to toggle source
# File lib/campa/core/test_report.rb, line 42 def label_only(filtered) filtered .tail .head .to_a .map(&:label) end
show_summary(success, failures, out)
click to toggle source
# File lib/campa/core/test_report.rb, line 22 def show_summary(success, failures, out) out.puts "\n\n#{success.length + failures.length} tests ran" if failures.empty? success_summary(success, out) else failure_summary(failures, out) end end
success_summary(_success, out)
click to toggle source
# File lib/campa/core/test_report.rb, line 50 def success_summary(_success, out) out.puts "Success: none of those returned false" true end