Class: TestRunner::TestResult

Inherits:
Object
  • Object
show all
Defined in:
lib/test-runner/test_result.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(test, script_results, success, elapsed_time, state_dir, kernel_failure: false) ⇒ TestResult

Returns a new instance of TestResult.



23
24
25
26
27
28
29
30
# File 'lib/test-runner/test_result.rb', line 23

def initialize(test, script_results, success, elapsed_time, state_dir, kernel_failure: false)
  @test = test
  @script_results = script_results
  @kernel_failure = kernel_failure
  @success = !kernel_failure && success && script_results.all?(&:expected_result?)
  @elapsed_time = elapsed_time
  @state_dir = state_dir
end

Instance Attribute Details

#elapsed_timeFloat (readonly)

Returns:

  • (Float)


15
16
17
# File 'lib/test-runner/test_result.rb', line 15

def elapsed_time
  @elapsed_time
end

#kernel_failureBoolean (readonly)

Returns:

  • (Boolean)


21
22
23
# File 'lib/test-runner/test_result.rb', line 21

def kernel_failure
  @kernel_failure
end

#script_resultsArray<TestScriptResult> (readonly)

Returns:



9
10
11
# File 'lib/test-runner/test_result.rb', line 9

def script_results
  @script_results
end

#state_dirString (readonly)

Returns:

  • (String)


18
19
20
# File 'lib/test-runner/test_result.rb', line 18

def state_dir
  @state_dir
end

#successBoolean (readonly)

Returns:

  • (Boolean)


12
13
14
# File 'lib/test-runner/test_result.rb', line 12

def success
  @success
end

#testTest (readonly)

Returns:



6
7
8
# File 'lib/test-runner/test_result.rb', line 6

def test
  @test
end

Class Method Details

.from_h(test, scripts_by_name, json) ⇒ TestResult

Parameters:

Returns:



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/test-runner/test_result.rb', line 85

def self.from_h(test, scripts_by_name, json)
  script_results = json.fetch('script_results').map do |sr|
    script = scripts_by_name.fetch(sr.fetch('script'))
    TestScriptResult.from_h(script, sr)
  end

  new(
    test,
    script_results,
    json.fetch('success'),
    json.fetch('elapsed_time'),
    json.fetch('state_dir'),
    kernel_failure: json.fetch('kernel_failure', false)
  )
end

Instance Method Details

#expected_result?Boolean

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
48
# File 'lib/test-runner/test_result.rb', line 40

def expected_result?
  return false if kernel_failure?

  if test.expect_failure
    !@success
  else
    @success
  end
end

#expected_to_fail?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/test-runner/test_result.rb', line 58

def expected_to_fail?
  test.expect_failure
end

#expected_to_succeed?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/test-runner/test_result.rb', line 54

def expected_to_succeed?
  !test.expect_failure
end

#failed?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/test-runner/test_result.rb', line 36

def failed?
  !@success
end

#kernel_failure?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/test-runner/test_result.rb', line 62

def kernel_failure?
  @kernel_failure
end

#successful?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/test-runner/test_result.rb', line 32

def successful?
  @success
end

#to_hHash

Returns:

  • (Hash)


67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/test-runner/test_result.rb', line 67

def to_h
  {
    'type' => 'test',
    'test' => test.path,
    'success' => successful?,
    'expected_to_succeed' => expected_to_succeed?,
    'expected_result' => expected_result?,
    'kernel_failure' => kernel_failure?,
    'elapsed_time' => elapsed_time,
    'state_dir' => state_dir,
    'script_results' => script_results.map(&:to_h)
  }
end

#to_jsonObject



101
102
103
# File 'lib/test-runner/test_result.rb', line 101

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

#unexpected_result?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/test-runner/test_result.rb', line 50

def unexpected_result?
  !expected_result?
end