Class: Moto::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/result.rb

Constant Summary collapse

PENDING =

-2

:pending
RUNNING =

-1

:running
PASSED =

0

:passed
FAILURE =

1

:failure
ERROR =

2

:error

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(runner) ⇒ Result

Returns a new instance of Result.



16
17
18
19
20
# File 'lib/result.rb', line 16

def initialize(runner)
  @runner = runner
  @results = {}
  @summary = {}
end

Instance Attribute Details

#summaryObject (readonly)

Returns the value of attribute summary.



10
11
12
# File 'lib/result.rb', line 10

def summary
  @summary
end

Instance Method Details

#[](key) ⇒ Object



12
13
14
# File 'lib/result.rb', line 12

def [](key)
  @results[key]
end

#add_error(test, e) ⇒ Object



58
59
60
# File 'lib/result.rb', line 58

def add_error(test, e)
  @results[test.name][:error] = e
end

#add_failure(test, msg) ⇒ Object



54
55
56
# File 'lib/result.rb', line 54

def add_failure(test, msg)
  @results[test.name][:failures] << msg
end

#end_runObject



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/result.rb', line 27

def end_run
  # info about duration and overall execution result
  @summary[:finished_at] = Time.now.to_f
  @summary[:duration] = @summary[:finished_at] - @summary[:started_at]
  @summary[:result] = PASSED
  @summary[:result] = FAILURE unless @results.values.select{ |v| v[:failures].count > 0 }.empty?
  @summary[:result] = ERROR unless @results.values.select{ |v| !v[:error].nil? }.empty?
  @summary[:cnt_all] = @results.count
  @summary[:cnt_passed] = @results.values.select{ |v| v[:result] == PASSED }.count
  @summary[:cnt_failure] = @results.values.select{ |v| v[:result] == FAILURE }.count
  @summary[:cnt_error] = @results.values.select{ |v| v[:result] == ERROR }.count
end

#end_test(test) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/result.rb', line 44

def end_test(test)
  # calculate result basing on errors/failures
  test.result = PASSED
  test.result = FAILURE unless @results[test.name][:failures].empty?
  test.result = ERROR unless @results[test.name][:error].nil?
  @results[test.name][:finished_at] = Time.now.to_f
  @results[test.name][:duration] = @results[test.name][:finished_at] - @results[test.name][:started_at]
  @results[test.name][:result] = test.result
end

#start_runObject



22
23
24
25
# File 'lib/result.rb', line 22

def start_run
  # start timer
  @summary[:started_at] = Time.now.to_f
end

#start_test(test) ⇒ Object



40
41
42
# File 'lib/result.rb', line 40

def start_test(test)
  @results[test.name] = { class: test.class, result: RUNNING, env: test.env, params: test.params, name: test.name, error: nil, failures: [], started_at: Time.now.to_f } 
end