Class: Matest::SpecPrinter

Inherits:
Object
  • Object
show all
Defined in:
lib/matest/spec_printer.rb

Instance Method Summary collapse

Instance Method Details



5
6
7
8
9
10
11
12
13
14
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
# File 'lib/matest/spec_printer.rb', line 5

def print(runner)
  puts "\n\n### Messages ###"

  statuses = []
  runner.info[:success] = true
  runner.info[:num_specs] = { total: 0 }

  runner.example_groups.each do |current_group|
    current_group.statuses.each do |status|
      runner.info[:num_specs][:total] += 1

      runner.info[:num_specs][status.name] ||= 0
      runner.info[:num_specs][status.name] += 1

      if status.is_a?(Matest::SpecPassed)
      else
        puts "\n[#{status.name}] #{status.description}"
        if status.is_a?(Matest::SpecFailed)
          runner.info[:success] = false
          puts "Variables: "
          status.example.track.each do |var, val|
            puts "  #{var}: #{val.inspect}"
          end
        end
        if status.is_a?(Matest::NotANaturalAssertion)
          runner.info[:success] = false
          puts "  # => #{status.result.inspect}"
        end
        if status.is_a?(Matest::ExceptionRaised)
          runner.info[:success] = false
          puts "EXCEPTION >> #{status.result}"
          status.result.backtrace.each do |l|
            puts "  #{l}"
          end

        end
        puts "  #{status.location}:"
      end
    end
  end
end