Sha256: 6840c1bb2da8bd05e1a97962eb733d37f2d43cd0a1cae532f411363231b7debc
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
require 'minitest/junit/version' require 'minitest' require 'builder' # :nodoc: module Minitest module Junit # :nodoc: class Reporter def initialize(io, options) @io = io @results = [] @options = options end def passed? true end def start; end def record(result) @results << result end def report @io.puts '<testsuite>' @results.each { |result| @io.puts format(result) } @io.puts '</testsuite>' end def format(result) xml = Builder::XmlMarkup.new xml.testcase classname: format_class(result), name: format_name(result), time: result.time, assertions: result.assertions do |t| t.skipped if result.skipped? result.failures.each do |failure| type = classify failure xml.tag! type, format_backtrace(failure), message: result end end xml.target! end private def classify(failure) if failure.instance_of? UnexpectedError 'error' else 'failure' end end def format_backtrace(failure) failure.backtrace.join("\n") end def format_class(result) if @options[:junit_jenkins] result.class.to_s.gsub(/(.*)::(.*)/, '\1.\2') else result.class end end def format_name(result) result.name end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
minitest-junit-0.2.0 | lib/minitest/junit.rb |