Class: Test::Reporters::AbstractHash

Inherits:
Abstract
  • Object
show all
Defined in:
lib/test/reporters/abstract_hash.rb

Overview

Hash Abstract is a base class for the TAP-Y and TAP-J reporters.

Direct Known Subclasses

Tapj, Tapy, Test

Instance Attribute Summary

Attributes inherited from Abstract

#runner

Instance Method Summary collapse

Methods inherited from Abstract

#clean_backtrace, #code, #end_test, #file, #file_and_line, #file_and_line_array, inherited, #initialize, #line, #record, registry, #skip_case, #skip_test, #subtotal, #tally, #timestamp, #total, #total_count

Constructor Details

This class inherits a constructor from Test::Reporters::Abstract

Instance Method Details

#begin_case(test_case) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/test/reporters/abstract_hash.rb', line 30

def begin_case(test_case)
  h = {}
  h['type' ] = 'case'
  h['level'] = @case_level

  merge_subtype      h, test_case
  merge_setup        h, test_case
  merge_description  h, test_case

  @case_level += 1

  return h
end

#begin_suite(suite) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/test/reporters/abstract_hash.rb', line 11

def begin_suite(suite)
  require 'yaml'

  @start_time = Time.now
  @case_level = 0
  @test_index = 0

  now = Time.now.strftime('%Y-%m-%d %H:%M:%S')

  h = {
    'type'  => 'suite',
    'start' => now,
    'count' => total_count(suite)
  }

  return h
end

#begin_test(test) ⇒ Object



45
46
47
# File 'lib/test/reporters/abstract_hash.rb', line 45

def begin_test(test)
  @test_index += 1
end

#end_case(test_case) ⇒ Object



139
140
141
# File 'lib/test/reporters/abstract_hash.rb', line 139

def end_case(test_case)
  @case_level -= 1
end

#end_suite(suite) ⇒ Object



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
# File 'lib/test/reporters/abstract_hash.rb', line 144

def end_suite(suite)
  h = {
    'type'  => 'tally',
    'time'  => Time.now - @start_time,
    'counts' => {
      'total' => total,
      'pass'  => record[:pass].size,
      'fail'  => record[:fail].size,
      'error' => record[:error].size,
      'omit'  => record[:omit].size,
      'todo'  => record[:todo].size
    }
  }
  return h
end

#error(test, exception) ⇒ Object



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/test/reporters/abstract_hash.rb', line 85

def error(test, exception)
  h = {}
  h['type'  ] = 'test'
  h['status'] = 'error'

  merge_subtype      h, test
  merge_setup        h, test
  merge_description  h, test
  #merge_comparison  h, test, exception
  #merge_coverage    h, test
  merge_source       h, test
  merge_exception    h, test, exception, true
  merge_time         h

  return h
end

#fail(test, exception) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/test/reporters/abstract_hash.rb', line 67

def fail(test, exception)
  h = {}
  h['type'  ] = 'test'
  h['status'] = 'fail'

  merge_subtype      h, test
  merge_setup        h, test
  merge_description  h, test
  #merge_comparison  h, test, exception
  #merge_coverage    h, test
  merge_source       h, test
  merge_exception    h, test, exception
  merge_time         h
 
  return h
end

#omit(test, exception) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/test/reporters/abstract_hash.rb', line 121

def omit(test, exception)
  h = {}
  h['type'  ] = 'test'
  h['status'] = 'omit'

  merge_subtype      h, test
  merge_setup        h, test
  merge_description  h, test
  #merge_comparison  h, test, exception
  #merge_coverage    h, test
  merge_source       h, test
  merge_exception    h, test, exception
  merge_time         h

  return h
end

#pass(test) ⇒ Object

, backtrace=nil)



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/test/reporters/abstract_hash.rb', line 50

def pass(test) #, backtrace=nil)
  h = {}
  h['type'  ] = 'test'
  h['status'] = 'pass'

  merge_subtype      h, test
  merge_setup        h, test
  merge_description  h, test
  #merge_comparison  h, test, exception
  #merge_coverage    h, test
  merge_source       h, test
  merge_time         h

  return h
end

#todo(test, exception) ⇒ Object



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/test/reporters/abstract_hash.rb', line 103

def todo(test, exception)
  h = {}
  h['type'  ] = 'test'
  h['status'] = 'todo'

  merge_subtype      h, test
  merge_setup        h, test
  merge_description  h, test
  #merge_comparison  h, test, exception
  #merge_coverage    h, test
  merge_source       h, test
  merge_exception    h, test, exception
  merge_time         h

  return h
end