class Fastlane::Helper::RescanFlakyTestsHelper

Public Class Methods

extract_failed_test_cases(report_file) click to toggle source

class methods that you define here become available in your action as `Helper::RescanEachFragileTestsHelper.your_method`

# File lib/fastlane/plugin/rescan_flaky_tests/helper/rescan_flaky_tests_helper.rb, line 9
def self.extract_failed_test_cases(report_file)
  xml_doc = REXML::Document.new(File.open(report_file))

  if xml_doc.elements.collect("testsuites") { |e| e }.count == 0
    return nil
  end

  test_cases = []
  xml_doc.elements.each("testsuites/testsuite/testcase[failure]") do |test_case|
    (bundle, test_suite) = test_case.attributes["classname"].split(".")
    method = test_case.attributes["name"]
    # xcodebuild changes '-' to '_'
    bundle.gsub!("_", "-")
    test_cases << "#{bundle}/#{test_suite}/#{method}"
  end
  test_cases
end