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
149
150
151
152
153
# 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|
        tag = case failure.class.name
              when /TestUnitSkipped/ then :skipped
              when /TestUnitError/ then :error
              else :failure end

        builder.tag!(tag, :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