Skip to content

Instantly share code, notes, and snippets.

@brokenthumbs
Created April 1, 2014 20:51
Show Gist options
  • Save brokenthumbs/9922930 to your computer and use it in GitHub Desktop.
Save brokenthumbs/9922930 to your computer and use it in GitHub Desktop.
require 'fileutils'
require 'nokogiri'
folder = "modules"
files = []
Dir.glob("#{folder}/**/output.xml").each do |f|
files << f
end
errors = 0
failures = 0
skipped = 0
tests = 0
time = 0
cases = []
files.each do |file|
# Add up the attributes
temp = File.new(file)
xdoc = Nokogiri::XML(temp)
xdoc.css("testsuite").each do |element|
errors += element.attr("errors").to_i
failures += element.attr("failures").to_i
skipped += element.attr("skipped").to_i
tests += element.attr("tests").to_i
time += element.attr("time").to_f
end
# Collect the test cases
xdoc.css("testcase").each do |element|
cases << element.to_s
end
File.delete(file)
end
# Write the final merged results.xml
results = File.new("output.xml", "w")
results.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n")
results.write("<testsuite errors=\"#{errors}\" failures=\"#{failures}\" skipped=\"#{skipped}\" tests=\"#{tests}\" time=\"#{time}\">\n")
results.write(" <properties/>\n")
cases.each { |tc| results.write(" #{tc}\n") }
results.write("</testsuite>")
results.close
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment