Class: Ask::Eval::Reporters::Console
- Inherits:
-
Object
- Object
- Ask::Eval::Reporters::Console
- Defined in:
- lib/ask/eval/reporters/console.rb
Overview
Console reporter — prints evaluation results to stdout.
Instance Method Summary collapse
-
#initialize(results) ⇒ Console
constructor
A new instance of Console.
-
#report ⇒ String
Print results to stdout.
Constructor Details
#initialize(results) ⇒ Console
Returns a new instance of Console.
9 10 11 |
# File 'lib/ask/eval/reporters/console.rb', line 9 def initialize(results) @results = results end |
Instance Method Details
#report ⇒ String
Print results to stdout.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ask/eval/reporters/console.rb', line 15 def report lines = [] lines << "=" * 60 lines << "Ask::Eval Results" lines << "=" * 60 passed = 0 failed = 0 @results.each do |r| result = r[:result] passed_val = result.is_a?(Hash) ? result[:passed] : result.passed score = result.is_a?(Hash) ? result[:score] : result.score reason = result.is_a?(Hash) ? result[:reason] : result.reason test_name = r[:test] || r[:name] assertion_name = r[:name] status = passed_val ? "PASS" : "FAIL" passed += 1 if passed_val failed += 1 unless passed_val lines << "" lines << " [#{status}] #{test_name} (#{assertion_name})" lines << " Score: #{score}" lines << " #{reason}" if reason end lines << "" lines << "-" * 60 lines << " Total: #{@results.size} | Passed: #{passed} | Failed: #{failed}" lines << "=" * 60 lines << "" output = lines.join("\n") puts output output end |