Module: TestBench
- Defined in:
- lib/test_bench/cli.rb,
lib/test_bench/run.rb,
lib/test_bench/output.rb,
lib/test_bench/output/log.rb,
lib/test_bench/output/raw.rb,
lib/test_bench/test_bench.rb,
lib/test_bench/output/timer.rb,
lib/test_bench/controls/path.rb,
lib/test_bench/controls/time.rb,
lib/test_bench/output/buffer.rb,
lib/test_bench/output/writer.rb,
lib/test_bench/controls/depth.rb,
lib/test_bench/controls/error.rb,
lib/test_bench/output/summary.rb,
lib/test_bench/run/substitute.rb,
lib/test_bench/controls/device.rb,
lib/test_bench/controls/result.rb,
lib/test_bench/controls/fixture.rb,
lib/test_bench/controls/pattern.rb,
lib/test_bench/output/batch_data.rb,
lib/test_bench/output/writer/sgr.rb,
lib/test_bench/controls/directory.rb,
lib/test_bench/controls/test_file.rb,
lib/test_bench/output/print_error.rb,
lib/test_bench/cli/parse_arguments.rb,
lib/test_bench/environment/boolean.rb,
lib/test_bench/deactivation_variants.rb,
lib/test_bench/output/summary/session.rb,
lib/test_bench/controls/output/styling.rb,
lib/test_bench/output/timer/substitute.rb,
lib/test_bench/controls/caller_location.rb,
lib/test_bench/controls/output/exercise.rb,
lib/test_bench/output/writer/dependency.rb,
lib/test_bench/output/writer/substitute.rb,
lib/test_bench/controls/output/log_level.rb,
lib/test_bench/controls/output/batch_data.rb,
lib/test_bench/controls/output/escape_code.rb,
lib/test_bench/controls/output/print_error.rb,
lib/test_bench/fixtures/configure_receiver.rb,
lib/test_bench/controls/output/summary/error.rb,
lib/test_bench/controls/output/detail_setting.rb,
lib/test_bench/controls/output/summary/session.rb,
lib/test_bench/controls/output/newline_character.rb
Defined Under Namespace
Modules: CLI, Controls, DeactivationVariants, Defaults, Environment, Fixtures, Output
Classes: Run
Constant Summary
collapse
- Session =
Fixture::Session
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Attribute Details
#session=(value) ⇒ Object
Sets the attribute session
11
12
13
|
# File 'lib/test_bench/test_bench.rb', line 11
def session=(value)
@session = value
end
|
Class Method Details
.activate(receiver = nil, session: nil) ⇒ Object
28
29
30
31
32
|
# File 'lib/test_bench/test_bench.rb', line 28
def self.activate(receiver=nil, session: nil)
receiver ||= TOPLEVEL_BINDING.receiver
fixture(session, receiver: receiver)
end
|
.build_session(output: nil, abort_on_error: nil, **args) ⇒ Object
62
63
64
65
66
67
|
# File 'lib/test_bench/test_bench.rb', line 62
def self.build_session(output: nil, abort_on_error: nil, **args)
output ||= Output.build
error_policy = session_error_policy(abort_on_error)
Fixture::Session.build(output: output, error_policy: error_policy, **args)
end
|
.context(title = nil, session: nil, &block) ⇒ Object
42
43
44
45
46
47
48
|
# File 'lib/test_bench/test_bench.rb', line 42
def self.context(title=nil, session: nil, &block)
evaluate(session: session) do
context(title) do
instance_exec(&block)
end
end
end
|
.evaluate(session: nil, &block) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/test_bench/test_bench.rb', line 34
def self.evaluate(session: nil, &block)
fixture = fixture(session)
fixture.context do
fixture.instance_exec(&block)
end
end
|
.exit_code(session, fail_deactivated_tests: nil) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# File 'lib/test_bench/test_bench.rb', line 79
def self.exit_code(session, fail_deactivated_tests: nil)
if fail_deactivated_tests.nil?
fail_deactivated_tests = Defaults.fail_deactivated_tests
end
if session.failed?
1
elsif session.skip?
fail_deactivated_tests ? 2 : 0
else
0
end
end
|
.fixture(session = nil, receiver: nil) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/test_bench/test_bench.rb', line 50
def self.fixture(session=nil, receiver: nil)
session ||= self.session
receiver ||= Object.new
receiver.extend(Fixture)
receiver.extend(DeactivationVariants)
receiver.test_session = session
receiver
end
|
.output ⇒ Object
13
14
15
|
# File 'lib/test_bench/test_bench.rb', line 13
def self.output
session.output
end
|
.session ⇒ Object
2
3
4
5
6
7
8
9
10
|
# File 'lib/test_bench/test_bench.rb', line 2
def self.session
@session ||= build_session.tap do |session|
at_exit do
exit_code = exit_code(session)
exit(exit_code) unless exit_code.zero?
end
end
end
|
.session_error_policy(abort_on_error = nil) ⇒ Object
69
70
71
72
73
74
75
76
77
|
# File 'lib/test_bench/test_bench.rb', line 69
def self.session_error_policy(abort_on_error=nil)
abort_on_error = Defaults.abort_on_error if abort_on_error.nil?
if abort_on_error
:abort
else
:rescue
end
end
|
.set_output(output, session: nil) ⇒ Object
17
18
19
20
21
22
23
24
25
|
# File 'lib/test_bench/test_bench.rb', line 17
def self.set_output(output, session: nil)
session ||= self.session
if output.is_a?(Array)
output = Fixture::Output::Multiple.build(*output)
end
session.output = output
end
|