class JUnitFormatter

def dump_summary(duration, example_count, failure_count, pending_count)

def dump_summary(duration, example_count, failure_count, pending_count)
  super(duration, example_count, failure_count, pending_count)
  output.puts("<?xml version=\"1.0\" encoding=\"utf-8\" ?>")
  output.puts("<testsuite errors=\"0\" failures=\"#{failure_count+pending_count}\" tests=\"#{example_count}\" time=\"#{duration}\" timestamp=\"#{Time.now.iso8601}\">")
  output.puts("  <properties />")
  @test_results[:successes].each do |t|
    md          = t.metadata
    runtime     = md[:execution_result][:run_time]
    description = _xml_escape(md[:full_description])
    file_path   = _xml_escape(md[:file_path])
    output.puts("  <testcase classname=\"#{file_path}\" name=\"#{description}\" time=\"#{runtime}\" />")
  end
  @test_results[:failures].each do |t|
    md          = t.metadata
    description = _xml_escape(md[:full_description])
    file_path   = _xml_escape(md[:file_path])
    runtime     = md[:execution_result][:run_time]
    output.puts("  <testcase classname=\"#{file_path}\" name=\"#{description}\" time=\"#{runtime}\">")
    output.puts("    <failure message=\"failure\" type=\"failure\">")
    output.puts("<![CDATA[ #{read_failure(t)} ]]>")
    output.puts("    </failure>")
    output.puts("  </testcase>")
  end
  output.puts("</testsuite>")
end