class Gitlab::QA::Report::TestResult::JsonTestResult

Public Instance Methods

ci_job_url() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 59
def ci_job_url
  report['ci_job_url']
end
failure_issue() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 75
def failure_issue
  report['failure_issue']
end
failure_issue=(new_failure_issue) click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 79
def failure_issue=(new_failure_issue)
  report['failure_issue'] = new_failure_issue
end
file() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 51
def file
  report['file_path']
end
name() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 47
def name
  report['full_description']
end
quarantine?() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 83
def quarantine?
  # The value for 'quarantine' could be nil, a hash, a string,
  # or true (if the test just has the :quarantine tag)
  # But any non-nil or false value should means the test is in quarantine
  report['quarantine'].present?
end
skipped() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 63
def skipped
  status == 'pending'
end
status() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 55
def status
  report['status']
end
testcase() click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 67
def testcase
  report['testcase']
end
testcase=(new_testcase) click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 71
def testcase=(new_testcase)
  report['testcase'] = new_testcase
end

Private Instance Methods

failures_from_exceptions() click to toggle source

rubocop:disable Metrics/AbcSize

# File lib/gitlab/qa/report/test_result.rb, line 93
def failures_from_exceptions
  return [] unless report.key?('exceptions')

  report['exceptions'].map do |exception|
    spec_file_first_index = exception['backtrace'].rindex do |line|
      line.include?(File.basename(report['file_path']))
    end

    {
      'message' => "#{exception['class']}: #{exception['message']}",
      'message_lines' => exception['message_lines'],
      'stacktrace' => "#{format_message_lines(exception['message_lines'])}\n#{exception['backtrace'].slice(0..spec_file_first_index).join("\n")}"
    }
  end
end
format_message_lines(message_lines) click to toggle source
# File lib/gitlab/qa/report/test_result.rb, line 109
def format_message_lines(message_lines)
  message_lines.is_a?(Array) ? message_lines.join("\n") : message_lines
end