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.



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

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

Instance Attribute Details

#assertionsObject

Returns the value of attribute assertions

Returns:

  • (Object)

    the current value of assertions



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

def assertions
  @assertions
end

#failuresObject

Returns the value of attribute failures.



106
107
108
# File 'lib/ci/reporter/test_suite.rb', line 106

def failures
  @failures
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



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

def name
  @name
end

#skippedObject

Returns the value of attribute skipped.



107
108
109
# File 'lib/ci/reporter/test_suite.rb', line 107

def skipped
  @skipped
end

#timeObject

Returns the value of attribute time

Returns:

  • (Object)

    the current value of time



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

def time
  @time
end

Instance Method Details

#error?Boolean

Returns non-nil if the test had an error.

Returns:

  • (Boolean)


130
131
132
# File 'lib/ci/reporter/test_suite.rb', line 130

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

#failure?Boolean

Returns non-nil if the test failed.

Returns:

  • (Boolean)


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

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

#finishObject

Finishes timing the test.



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

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

#skipped?Boolean

Returns:

  • (Boolean)


134
135
136
# File 'lib/ci/reporter/test_suite.rb', line 134

def skipped?
  return skipped
end

#startObject

Starts timing the test.



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

def start
  @start = Time.now
end

#to_xml(builder) ⇒ Object

Writes xml representing the test result to the provided builder.



139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/ci/reporter/test_suite.rb', line 139

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