class RSpec::JUnit::Renderer
Attributes
builder[R]
duration[R]
examples[R]
Public Class Methods
new(examples, duration = 0)
click to toggle source
# File lib/rspec/junit/renderer.rb, line 8 def initialize(examples, duration = 0) @examples = examples @duration = duration @builder = Builder::XmlMarkup.new indent: 2 end
Public Instance Methods
render()
click to toggle source
# File lib/rspec/junit/renderer.rb, line 14 def render builder.instruct! :xml, version: '1.0', encoding: 'UTF-8' render_testsuites builder.target! end
render_testcase(example)
click to toggle source
# File lib/rspec/junit/renderer.rb, line 36 def render_testcase(example) builder.testcase(testcase_attributes(example)) do if example.failed? builder.failure(message: example.error_message, type: :failed) do builder.cdata! example.details end elsif example.pending? builder.skipped end end end
render_testsuite(testsuite, examples)
click to toggle source
# File lib/rspec/junit/renderer.rb, line 28 def render_testsuite(testsuite, examples) builder.testsuite(testsuite_attributes(testsuite, examples)) do examples.each do |example| render_testcase example end end end
render_testsuites()
click to toggle source
# File lib/rspec/junit/renderer.rb, line 20 def render_testsuites builder.testsuites(testsuites_attributes) do @examples.each_testsuite do |testsuite, examples| render_testsuite testsuite, examples end end end
Private Instance Methods
testcase_attributes(example)
click to toggle source
# File lib/rspec/junit/renderer.rb, line 70 def testcase_attributes(example) { name: example.name, time: example.run_time } end
testsuite_attributes(name, examples)
click to toggle source
# File lib/rspec/junit/renderer.rb, line 60 def testsuite_attributes(name, examples) { name: name, errors: 0, tests: examples.count, failures: examples.failed.count, skipped: examples.pending.count } end
testsuites_attributes()
click to toggle source
# File lib/rspec/junit/renderer.rb, line 49 def testsuites_attributes { errors: 0, tests: examples.count, failures: examples.failed.count, skipped: examples.pending.count, time: duration, timestamp: Time.now.iso8601 } end