Class: CI::Reporter::TestCase

Inherits:
Struct
  • Object
show all
Defined in:
lib/ci/reporter/test_suite.rb

Overview

Structure used to represent an individual test case. Used to time the test and store the result.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ TestCase

Returns a new instance of TestCase.



103
104
105
106
# File 'lib/ci/reporter/test_suite.rb', line 103

def initialize(*args)
  super
  @failures = []
end

Instance Attribute Details

#assertionsObject

Returns the value of attribute assertions

Returns:

  • (Object)

    the current value of assertions



99
100
101
# File 'lib/ci/reporter/test_suite.rb', line 99

def assertions
  @assertions
end

#failuresObject

Returns the value of attribute failures.



100
101
102
# File 'lib/ci/reporter/test_suite.rb', line 100

def failures
  @failures
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



99
100
101
# File 'lib/ci/reporter/test_suite.rb', line 99

def name
  @name
end

#skippedObject

Returns the value of attribute skipped.



101
102
103
# File 'lib/ci/reporter/test_suite.rb', line 101

def skipped
  @skipped
end

#timeObject

Returns the value of attribute time

Returns:

  • (Object)

    the current value of time



99
100
101
# File 'lib/ci/reporter/test_suite.rb', line 99

def time
  @time
end

Instance Method Details

#error?Boolean

Returns non-nil if the test had an error.

Returns:

  • (Boolean)


124
125
126
# File 'lib/ci/reporter/test_suite.rb', line 124

def error?
  !failures.empty? && failures.detect {|f| f.error? }
end

#failure?Boolean

Returns non-nil if the test failed.

Returns:

  • (Boolean)


119
120
121
# File 'lib/ci/reporter/test_suite.rb', line 119

def failure?
  !failures.empty? && failures.detect {|f| f.failure? }
end

#finishObject

Finishes timing the test.



114
115
116
# File 'lib/ci/reporter/test_suite.rb', line 114

def finish
  self.time = Time.now - @start
end

#skipped?Boolean

Returns:

  • (Boolean)


128
129
130
# File 'lib/ci/reporter/test_suite.rb', line 128

def skipped?
  return skipped
end

#startObject

Starts timing the test.



109
110
111
# File 'lib/ci/reporter/test_suite.rb', line 109

def start
  @start = Time.now
end

#to_xml(builder) ⇒ Object

Writes xml representing the test result to the provided builder.



133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/ci/reporter/test_suite.rb', line 133

def to_xml(builder)
  attrs = {}
  each_pair {|k,v| attrs[k] = builder.trunc!(v.to_s) unless v.nil? || v.to_s.empty?}
  builder.testcase(attrs) do
    if skipped
      builder.skipped
    else
      failures.each do |failure|
        builder.failure(:type => builder.trunc!(failure.name), :message => builder.trunc!(failure.message)) do
          builder.text!(failure.message + " (#{failure.name})\n")
          builder.text!(failure.location)
        end
      end
    end
  end
end