module XcodeResultBundleProcessor::TestSummaries::TextReport

Public Class Methods

format(results_bundle) click to toggle source
# File lib/xcoderesultbundleprocessor/test_summaries/text_report.rb, line 6
def self.format(results_bundle)
  test_summaries = TestSummaries.new(results_bundle.read_plist('TestSummaries.plist'))

  buffer = IndentedStringBuffer.new

  test_summaries.tests.each { |test| self._format_test(test, buffer) }

  tests_passed_count = test_summaries.tests.group_by(&:passed?)[true].length

  info "#{tests_passed_count} / #{test_summaries.tests.length} tests passed"

  buffer.to_s
end

Private Class Methods

_format_failure_summary(failure_summary, buffer) click to toggle source
# File lib/xcoderesultbundleprocessor/test_summaries/text_report.rb, line 34
def self._format_failure_summary(failure_summary, buffer)
  buffer << "Failure at #{failure_summary.location}"
  buffer.indent << failure_summary.message.each_line
end
_format_test(test, buffer) click to toggle source
# File lib/xcoderesultbundleprocessor/test_summaries/text_report.rb, line 22
def self._format_test(test, buffer)
  buffer << test.summary

  test.failure_summaries.each { |failure_summary| self._format_failure_summary(failure_summary, buffer.indent) }

  unless test.activities.empty?
    buffer.indent << 'Timeline:'

    buffer.indent.indent << test.activities.map(&:title)
  end
end