Class: TestBench::Telemetry

Inherits:
Object
  • Object
show all
Includes:
Observable
Defined in:
lib/test_bench/telemetry.rb,
lib/test_bench/telemetry/registry.rb,
lib/test_bench/telemetry/assertions.rb,
lib/test_bench/telemetry/subscription.rb

Defined Under Namespace

Modules: Assertions, NullSink, Registry Classes: Record, Subscription

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#failedObject

Returns the value of attribute failed.



5
6
7
# File 'lib/test_bench/telemetry.rb', line 5

def failed
  @failed
end

#nestingObject



59
60
61
# File 'lib/test_bench/telemetry.rb', line 59

def nesting
  @nesting ||= 0
end

#sinkObject



83
84
85
# File 'lib/test_bench/telemetry.rb', line 83

def sink
  @sink ||= NullSink
end

Class Method Details

.buildObject



9
10
11
12
13
14
15
16
17
# File 'lib/test_bench/telemetry.rb', line 9

def self.build
  instance = new

  if Settings.toplevel.record_telemetry
    instance.sink = []
  end

  instance
end

.subscribe(subscriber) ⇒ Object



113
114
115
116
# File 'lib/test_bench/telemetry.rb', line 113

def self.subscribe subscriber
  toplevel_telemetry = Registry.get TOPLEVEL_BINDING
  toplevel_telemetry.subscribe subscriber
end

Instance Method Details

#assertedObject



19
20
21
# File 'lib/test_bench/telemetry.rb', line 19

def asserted
  publish :asserted
end

#commented(prose) ⇒ Object



23
24
25
# File 'lib/test_bench/telemetry.rb', line 23

def commented prose
  publish :commented, prose
end

#context_entered(prose) ⇒ Object



27
28
29
30
31
# File 'lib/test_bench/telemetry.rb', line 27

def context_entered prose
  publish :context_entered, prose

  self.nesting += 1
end

#context_exited(prose) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/test_bench/telemetry.rb', line 33

def context_exited prose
  publish :context_exited, prose

  self.nesting -= 1

  nesting
end

#error_raised(error) ⇒ Object



41
42
43
44
45
# File 'lib/test_bench/telemetry.rb', line 41

def error_raised error
  self.failed = true

  publish :error_raised, error
end

#failed?Boolean



47
48
49
# File 'lib/test_bench/telemetry.rb', line 47

def failed?
  if failed then true else false end
end

#file_finished(file) ⇒ Object



51
52
53
# File 'lib/test_bench/telemetry.rb', line 51

def file_finished file
  publish :file_finished, file
end

#file_started(file) ⇒ Object



55
56
57
# File 'lib/test_bench/telemetry.rb', line 55

def file_started file
  publish :file_started, file
end

#passed?Boolean



63
64
65
# File 'lib/test_bench/telemetry.rb', line 63

def passed?
  not failed?
end

#publish(event, *arguments) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/test_bench/telemetry.rb', line 67

def publish event, *arguments
  changed
  notify_observers event, *arguments

  record = Record.new event, *arguments
  sink << record
end

#run_finishedObject



79
80
81
# File 'lib/test_bench/telemetry.rb', line 79

def run_finished
  publish :run_finished
end

#run_startedObject



75
76
77
# File 'lib/test_bench/telemetry.rb', line 75

def run_started
  publish :run_started
end

#subscribe(subscriber) ⇒ Object



87
88
89
90
91
# File 'lib/test_bench/telemetry.rb', line 87

def subscribe subscriber
  subscription = Subscription.new subscriber
  add_observer subscription
  subscription
end

#test_failed(prose) ⇒ Object



93
94
95
# File 'lib/test_bench/telemetry.rb', line 93

def test_failed prose
  publish :test_failed, prose
end

#test_finished(prose) ⇒ Object



97
98
99
# File 'lib/test_bench/telemetry.rb', line 97

def test_finished prose
  publish :test_finished, prose
end

#test_passed(prose) ⇒ Object



101
102
103
# File 'lib/test_bench/telemetry.rb', line 101

def test_passed prose
  publish :test_passed, prose
end

#test_skipped(prose) ⇒ Object



105
106
107
# File 'lib/test_bench/telemetry.rb', line 105

def test_skipped prose
  publish :test_skipped, prose
end

#test_started(prose) ⇒ Object



109
110
111
# File 'lib/test_bench/telemetry.rb', line 109

def test_started prose
  publish :test_started, prose
end