def finish
switch
time = @timer.elapsed
tests = @tally.counter.examples
errors = @tally.counter.errors
failures = @tally.counter.failures
printf <<-XML
<?xml version="1.0" encoding="UTF-8" ?>
<testsuites
testCount="#{tests}"
errorCount="#{errors}"
failureCount="#{failures}"
timeCount="#{time}" time="#{time}">
<testsuite
tests="#{tests}"
errors="#{errors}"
failures="#{failures}"
time="#{time}"
name="Spec Output For #{::RUBY_NAME} (#{::RUBY_VERSION})">
XML
@tests.each do |h|
description = encode_for_xml h[:test].description
printf " <testcase classname="%s" name="%s" time="%f">
", "Spec", description, 0.0
if h[:exception]
outcome = h[:test].failure? ? "failure" : "error"
message = encode_for_xml h[:test].message
backtrace = encode_for_xml h[:test].backtrace
print <<-XML
<#{outcome} message="error in #{description}" type="#{outcome}">
#{message}
#{backtrace}
</#{outcome}>
XML
end
print <<-XML
</testcase>
XML
end
print <<-XML
</testsuite>
</testsuites>
XML
end