Class: Ace::TestRunner::Models::TestResult

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/test_runner/models/test_result.rb

Overview

Represents the result of a test run

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ TestResult

Returns a new instance of TestResult.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ace/test_runner/models/test_result.rb', line 12

def initialize(attributes = {})
  @passed = attributes[:passed] || 0
  @failed = attributes[:failed] || 0
  @skipped = attributes[:skipped] || 0
  @errors = attributes[:errors] || 0
  @assertions = attributes[:assertions] || 0
  @duration = attributes[:duration] || 0.0
  @start_time = attributes[:start_time]
  @end_time = attributes[:end_time]
  @failures_detail = attributes[:failures_detail] || []
  @deprecations = attributes[:deprecations] || []
  @raw_output = attributes[:raw_output] || ""
  @stderr = attributes[:stderr] || ""
end

Instance Attribute Details

#assertionsObject

Returns the value of attribute assertions.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def assertions
  @assertions
end

#deprecationsObject

Returns the value of attribute deprecations.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def deprecations
  @deprecations
end

#durationObject

Returns the value of attribute duration.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def duration
  @duration
end

#end_timeObject

Returns the value of attribute end_time.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def end_time
  @end_time
end

#errorsObject

Returns the value of attribute errors.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def errors
  @errors
end

#failedObject

Returns the value of attribute failed.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def failed
  @failed
end

#failures_detailObject

Returns the value of attribute failures_detail.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def failures_detail
  @failures_detail
end

#passedObject

Returns the value of attribute passed.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def passed
  @passed
end

#raw_outputObject

Returns the value of attribute raw_output.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def raw_output
  @raw_output
end

#skippedObject

Returns the value of attribute skipped.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def skipped
  @skipped
end

#start_timeObject

Returns the value of attribute start_time.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def start_time
  @start_time
end

#stderrObject

Returns the value of attribute stderr.



8
9
10
# File 'lib/ace/test_runner/models/test_result.rb', line 8

def stderr
  @stderr
end

Instance Method Details

#has_deprecations?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/ace/test_runner/models/test_result.rb', line 43

def has_deprecations?
  deprecations.any?
end

#has_failures?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/ace/test_runner/models/test_result.rb', line 35

def has_failures?
  failed > 0 || errors > 0
end

#has_skips?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/ace/test_runner/models/test_result.rb', line 39

def has_skips?
  skipped > 0
end

#pass_rateObject



47
48
49
50
# File 'lib/ace/test_runner/models/test_result.rb', line 47

def pass_rate
  return 0.0 if total_tests == 0
  (passed.to_f / total_tests * 100).round(2)
end

#success?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/ace/test_runner/models/test_result.rb', line 31

def success?
  failed == 0 && errors == 0
end

#summary_lineObject



52
53
54
55
56
57
58
59
60
# File 'lib/ace/test_runner/models/test_result.rb', line 52

def summary_line
  parts = []
  parts << "#{passed} passed" if passed > 0
  parts << "#{failed} failed" if failed > 0
  parts << "💥 #{errors} errors" if errors > 0
  parts << "⚠️ #{skipped} skipped" if skipped > 0

  parts.empty? ? "No tests executed" : parts.join(", ")
end

#to_hObject



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/ace/test_runner/models/test_result.rb', line 62

def to_h
  {
    passed: passed,
    failed: failed,
    skipped: skipped,
    errors: errors,
    assertions: assertions,
    total_tests: total_tests,
    duration: duration,
    pass_rate: pass_rate,
    success: success?,
    start_time: start_time&.iso8601,
    end_time: end_time&.iso8601,
    failures: failures_detail.map(&:to_h),
    deprecations: deprecations
  }
end

#to_json(*args) ⇒ Object



80
81
82
# File 'lib/ace/test_runner/models/test_result.rb', line 80

def to_json(*args)
  to_h.to_json(*args)
end

#total_testsObject



27
28
29
# File 'lib/ace/test_runner/models/test_result.rb', line 27

def total_tests
  passed + failed + skipped + errors
end