class PactJUnitFormatter
Public Instance Methods
dump_summary(notification)
click to toggle source
# File lib/pact_junit_formatter.rb, line 16 def dump_summary(notification) @notification = notification xml_dump(@examples) end
stop(notification)
click to toggle source
# File lib/pact_junit_formatter.rb, line 12 def stop(notification) @examples = rearrange(notification.notifications.map {|n| PactExample.new(n) }) end
Private Instance Methods
dump_testsuite(xml, package_name, es)
click to toggle source
# File lib/pact_junit_formatter.rb, line 38 def dump_testsuite(xml, package_name, es) failure_count = es.select {|e| e.status == :failed }.size duration = es.map {|e| e.run_time }.inject(0, &:+) timestamp = es.map {|e| e.started_at }.sort.first.iso8601 xml.testsuite(name: package_name, tests: es.size, failures: failure_count, time: '%.6f' % duration, timestamp: timestamp) do xml.properties es.each {|e| ExampleDumper.new(xml, e).call } end end
rearrange(examples)
click to toggle source
# File lib/pact_junit_formatter.rb, line 23 def rearrange(examples) examples.inject(Hash.new {|h, k| h[k] = [] }) do |h, example| h[example.package_name] << example h end end
xml_dump(examples)
click to toggle source
# File lib/pact_junit_formatter.rb, line 30 def xml_dump(examples) xml = Builder::XmlMarkup.new target: output, indent: 2 xml.instruct! xml.testsuites(tests: @notification.examples.size, failures: @notification.failed_examples.size, time: @notification.duration) do examples.each {|package_name, es| dump_testsuite(xml, package_name, es) } end end