Class: TestBench::Run

Inherits:
Object
  • Object
show all
Defined in:
lib/test_bench/run/run.rb,
lib/test_bench/run/summary.rb,
lib/test_bench/run/substitute.rb,
lib/test_bench/run/select_files.rb,
lib/test_bench/run/controls/path.rb,
lib/test_bench/run/controls/time.rb,
lib/test_bench/run/controls/events.rb,
lib/test_bench/run/controls/random.rb,
lib/test_bench/run/controls/status.rb,
lib/test_bench/run/controls/message.rb,
lib/test_bench/run/controls/session.rb,
lib/test_bench/run/controls/summary.rb,
lib/test_bench/run/controls/telemetry.rb,
lib/test_bench/run/summary/substitute.rb,
lib/test_bench/run/controls/summary/run.rb,
lib/test_bench/run/controls/summary/file.rb,
lib/test_bench/run/select_files/substitute.rb,
lib/test_bench/run/controls/summary/file/info.rb,
lib/test_bench/run/controls/summary/file/totals.rb

Defined Under Namespace

Modules: Controls, Defaults, Substitute Classes: SelectFiles, Summary

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#abort_on_failureObject Also known as: abort_on_failure?



26
27
28
29
30
# File 'lib/test_bench/run/run.rb', line 26

def abort_on_failure
  @abort_on_failure.nil? ?
    @abort_on_failure = false :
    @abort_on_failure
end

#path_sequenceObject



34
35
36
# File 'lib/test_bench/run/run.rb', line 34

def path_sequence
  @path_sequence ||= 0
end


18
19
20
21
22
# File 'lib/test_bench/run/run.rb', line 18

def print_summary
  @print_summary.nil? ?
    @print_summary = true :
    @print_summary
end

#select_filesObject



8
9
10
# File 'lib/test_bench/run/run.rb', line 8

def select_files
  @select_files ||= SelectFiles::Substitute.build
end

#sessionObject



13
14
15
# File 'lib/test_bench/run/run.rb', line 13

def session
  @session ||= Session::Substitute.build
end

#summaryObject



3
4
5
# File 'lib/test_bench/run/run.rb', line 3

def summary
  @summary ||= Summary::Substitute.build
end

Class Method Details

.build(exclude: nil, print_summary: nil, abort_on_failure: nil, session: nil) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/test_bench/run/run.rb', line 39

def self.build(exclude: nil, print_summary: nil, abort_on_failure: nil, session: nil)
  if print_summary.nil?
    print_summary = Defaults.print_summary
  end

  if abort_on_failure.nil?
    abort_on_failure = Defaults.abort_on_failure
  end

  instance = new

  instance.print_summary = print_summary
  instance.abort_on_failure = abort_on_failure

  Session.configure(instance, session:)

  Summary.configure(instance)

  SelectFiles.configure(instance, exclude_patterns: exclude)

  session = instance.session

  Output.register_telemetry_sink(session)

  summary = instance.summary
  session.register_telemetry_sink(summary)

  instance
end

.call(path, session: nil, exclude: nil) ⇒ Object



78
79
80
81
82
83
84
85
86
# File 'lib/test_bench/run/run.rb', line 78

def self.call(path, session: nil, exclude: nil)
  session ||= establish_session

  instance = build(exclude:, session:)

  instance.() do
    instance << path
  end
end

.configure(receiver, attr_name: nil) ⇒ Object



69
70
71
72
73
74
75
76
# File 'lib/test_bench/run/run.rb', line 69

def self.configure(receiver, attr_name: nil)
  attr_name ||= :run

  session = establish_session

  instance = build(session:)
  receiver.public_send(:"#{attr_name}=", instance)
end

.establish_sessionObject



88
89
90
91
92
# File 'lib/test_bench/run/run.rb', line 88

def self.establish_session
  session = Session.build
  Session.establish(session)
  session
end

Instance Method Details

#call(&block) ⇒ Object



94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/test_bench/run/run.rb', line 94

def call(&block)
  block.(self)

  session.close

  if print_summary?
    summary.print
  end

  result = session.result
  Session::Result.resolve(result)
end

#path(path) ⇒ Object Also known as: <<



107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/test_bench/run/run.rb', line 107

def path(path)
  self.path_sequence += 1

  select_files.(path) do |file_path|
    if abort_on_failure?
      case session.result
      when Session::Result.aborted, Session::Result.failed
        next
      end
    end

    session.execute(file_path)
  end
end

#ran?Boolean

Returns:

  • (Boolean)


123
124
125
# File 'lib/test_bench/run/run.rb', line 123

def ran?
  path_sequence > 0
end