class PactJUnitFormatter::ExampleDumper

Public Class Methods

new(xml, example) click to toggle source
# File lib/pact_junit_formatter.rb, line 50
def initialize(xml, example)
  @xml = xml
  @example = example
end

Public Instance Methods

call() click to toggle source
# File lib/pact_junit_formatter.rb, line 55
def call
  case @example.status
  when :passed
    dump_example(@example)
  when :pending
    dump_pending(@example)
  when :failed
    dump_failed(@example)
  else
    raise "Unexpected example status: #{@example.status}"
  end
end

Private Instance Methods

dump_example(example, &block) click to toggle source
# File lib/pact_junit_formatter.rb, line 85
def dump_example(example, &block)
  @xml.testcase(
    classname: example.classname,
    name: example.description,
    file: '',
    time: "%.6f" % example.run_time,
    &block
  )
end
dump_failed(example) click to toggle source
# File lib/pact_junit_formatter.rb, line 74
def dump_failed(example)
  exception = example.example.exception
  message = exception.message.gsub(/\e\[(\d+)m/, '')

  dump_example(example) do
    @xml.failure(message: message, type: exception.class.name) do
      @xml.cdata!("#{message}\n#{example.notification.formatted_backtrace.join("\n")}")
    end
  end
end
dump_pending(example) click to toggle source
# File lib/pact_junit_formatter.rb, line 70
def dump_pending(example)
  dump_example(example) { @xml.skipped }
end