class Teaspoon::Formatter::Junit
Protected Instance Methods
log_complete(_failure_count)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 54 def log_complete(_failure_count) log_line(%{</testsuite>\n</testsuites>}) end
log_coverage(message)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 41 def log_coverage(message) properties = "<properties>#{cdata(message)}</properties>" log_line(%{<testsuite name="Coverage summary" tests="0">\n#{properties}\n</testsuite>}) end
log_failing_spec(result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 31 def log_failing_spec(result) log_junit_spec(suite: result.suite, label: result.label) do log_line(%{ <failure type="AssertionFailed">#{cdata(result.message)}</failure>}) end end
log_passing_spec(result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 21 def log_passing_spec(result) log_junit_spec(suite: result.suite, label: result.label) end
log_pending_spec(result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 25 def log_pending_spec(result) log_junit_spec(suite: result.suite, label: result.label) do log_line(%{ <skipped/>}) end end
log_result(_result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 37 def log_result(_result) log_end_suite end
log_runner(result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 9 def log_runner(result) log_line(%{<?xml version="1.0" encoding="UTF-8"?>}) log_line(%{<testsuites name="Teaspoon">}) start_time = Time.parse(result.start).iso8601 log_line(%{<testsuite name="#{escape(@suite_name)}" tests="#{@total_count}" timestamp="#{start_time}">}) end
log_suite(result)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 16 def log_suite(result) log_end_suite log_line(%{<testsuite name="#{escape(result.label)}">}) end
log_threshold_failure(message)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 46 def log_threshold_failure(message) log_line(%{<testsuite name="Coverage thresholds" tests="1">}) log_junit_spec(suite: "Coverage thresholds", label: "were not met") do log_line(%{ <failure type="AssertionFailed">#{cdata(message)}</failure>}) end log_line(%{</testsuite>}) end
Private Instance Methods
cdata(str)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 75 def cdata(str) "\n<![CDATA[\n#{str.gsub(/\n$/, '')}\n]]>\n" end
escape(str)
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 71 def escape(str) CGI.escapeHTML(str) end
log_end_suite()
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 60 def log_end_suite log_line(%{</testsuite>}) if @last_suite end
log_junit_spec(opts) { || ... }
click to toggle source
# File lib/teaspoon/formatter/junit.rb, line 64 def log_junit_spec(opts, &_block) log_line(%{<testcase classname="#{escape(opts[:suite])}" name="#{escape(opts[:label])}">}) yield if block_given? log_line(%{<system-out>#{cdata(@stdout)}</system-out>}) unless @stdout.blank? log_line(%{</testcase>}) end