/
test.rb
59 lines (48 loc) 路 1.29 KB
/
test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# frozen_string_literal: true
module Homebrew
class Test
def failed_steps
@steps.select(&:failed?)
end
def ignored_steps
@steps.select(&:ignored?)
end
attr_reader :steps
private
attr_reader :tap, :git, :repository
def initialize(tap: nil, git: nil, dry_run: false, fail_fast: false, verbose: false)
@tap = tap
@git = git
@dry_run = dry_run
@fail_fast = fail_fast
@verbose = verbose
@steps = []
@repository = if @tap
@tap.path
else
CoreTap.instance.path
end
end
def test_header(klass, method: "run!")
puts
puts Formatter.headline("Running #{klass}##{method}", color: :magenta)
end
def info_header(text)
puts Formatter.headline(text, color: :cyan)
end
def test(*arguments, named_args: nil, env: {}, verbose: @verbose, ignore_failures: false)
step = Step.new(
arguments,
named_args: named_args,
env: env,
verbose: verbose,
ignore_failures: ignore_failures,
repository: @repository,
)
step.run(dry_run: @dry_run, fail_fast: @fail_fast)
@steps << step
Utils::Analytics.report_test_bot_test(step.command_short, step.passed?)
step
end
end
end