Class: Fivemat::Spec

Inherits:
Spec::Runner::Formatter::ProgressBarFormatter
  • Object
show all
Includes:
ElapsedTime
Defined in:
lib/fivemat/spec.rb

Instance Method Summary collapse

Methods included from ElapsedTime

#print_elapsed_time

Constructor Details

#initializeSpec

Returns a new instance of Spec.



7
8
9
10
11
12
13
14
15
# File 'lib/fivemat/spec.rb', line 7

def initialize(*)
  super
  @dumping = false
  @example_group_number = 0
  @failed_examples = []
  @failure_index_offset = 1
  @last_nested_descriptions = []
  @last_root_example_group = nil
end

Instance Method Details

#dump_failureObject



53
54
55
# File 'lib/fivemat/spec.rb', line 53

def dump_failure(*)
  super unless @dumping
end

#example_failed(example, counter, failure) ⇒ Object



43
44
45
46
# File 'lib/fivemat/spec.rb', line 43

def example_failed(example, counter, failure)
  super
  @failed_examples << failure
end

#example_group_finished(example_group_proxy) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fivemat/spec.rb', line 31

def example_group_finished(example_group_proxy)
  print_elapsed_time output, @start_time
  puts

  @failed_examples.each_with_index do |example, index|
    dump_failure(@failure_index_offset + index, example)
  end

  @failure_index_offset += @failed_examples.size
  @failed_examples.clear
end

#example_group_started(example_group_proxy) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/fivemat/spec.rb', line 17

def example_group_started(example_group_proxy)
  super
  @example_group_number += 1

  unless example_group_proxy.nested_descriptions.first == @last_nested_descriptions.first
    @last_root_example_group = example_group_proxy
    example_group_finished(example_group_proxy) unless @example_group_number == 1
    output.print "#{example_group_proxy.nested_descriptions.first} "
    @start_time = Time.now
  end

  @last_nested_descriptions = example_group_proxy.nested_descriptions
end

#start_dumpObject



48
49
50
51
# File 'lib/fivemat/spec.rb', line 48

def start_dump
  example_group_finished(@last_root_example_group)
  @dumping = true
end