Class: GitlabQuality::TestTooling::TestResult::JUnitTestResult
- Inherits:
-
BaseTestResult
- Object
- BaseTestResult
- GitlabQuality::TestTooling::TestResult::JUnitTestResult
show all
- Defined in:
- lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb
Instance Attribute Summary collapse
#report
Instance Method Summary
collapse
#category, #failures?, #initialize, #stage
Instance Attribute Details
#testcase ⇒ Object
7
8
9
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 7
def testcase
@testcase
end
|
Instance Method Details
#ci_job_url ⇒ Object
78
79
80
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 78
def ci_job_url
ENV.fetch('CI_JOB_URL', '')
end
|
#failure_issue ⇒ Object
94
95
96
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 94
def failure_issue
report['failure_issue']
end
|
#failure_issue=(new_failure_issue) ⇒ Object
98
99
100
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 98
def failure_issue=(new_failure_issue)
report['failure_issue'] = new_failure_issue
end
|
#failures ⇒ Object
rubocop:disable Metrics/AbcSize
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 21
def failures failures = report.search('failure')
return [] if failures.empty?
failures.map do |exception|
trace = exception.content.split("\n").map(&:strip)
spec_file_first_index = trace.rindex do |line|
report['file'] && line.include?(File.basename(report['file']))
end
exception['message'].gsub!(/(private_token=)[\w-]+/, '********')
exception['message'].gsub!(/("Authorization": \[\n\s*"token )([\w-]+)/, '\1********')
exception.content = exception.content.gsub(/(private_token=)[\w-]+/, '********')
exception.content = exception.content.gsub(/("Authorization": \[\n\s*"token )([\w-]+)/, '\1********')
{
'message' => "#{exception['type']}: #{exception['message']}",
'stacktrace' => trace.slice(0..spec_file_first_index).join("\n"),
'message_lines' => trace.slice(0..spec_file_first_index)
}
end
end
|
#feature_category ⇒ Object
90
91
92
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 90
def feature_category
report['feature_category']
end
|
#file ⇒ Object
13
14
15
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 13
def file
report['file']&.delete_prefix('./')
end
|
#level ⇒ Object
58
59
60
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 58
def level
report['level']
end
|
#line_number ⇒ Object
54
55
56
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 54
def line_number
report['line_number']
end
|
#max_duration_for_test ⇒ Object
74
75
76
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 74
def max_duration_for_test
""
end
|
#name ⇒ Object
9
10
11
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 9
def name
report['name']
end
|
#product_group ⇒ Object
82
83
84
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 82
def product_group
report['product_group'].to_s
end
|
#product_group? ⇒ Boolean
86
87
88
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 86
def product_group?
product_group != ''
end
|
#quarantine ⇒ Object
43
44
45
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 43
def quarantine
!report['quarantine'].nil?
end
|
#quarantine? ⇒ Boolean
47
48
49
50
51
52
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 47
def quarantine?
!!quarantine
end
|
#run_time ⇒ Object
62
63
64
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 62
def run_time
report['run_time'].to_f.round(2)
end
|
#screenshot ⇒ Object
66
67
68
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 66
def screenshot
report['screenshot']
end
|
#screenshot? ⇒ Boolean
70
71
72
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 70
def screenshot?
!!screenshot
end
|
#skipped? ⇒ Boolean
17
18
19
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 17
def skipped?
report.search('skipped').any?
end
|
#test_file_link ⇒ Object
102
103
104
105
106
107
108
|
# File 'lib/gitlab_quality/test_tooling/test_result/j_unit_test_result.rb', line 102
def test_file_link
return "" if file.nil?
path_prefix = file.start_with?('qa/') ? 'qa/' : ''
"[`#{path_prefix}#{file}#L#{line_number}`](#{Runtime::Env.file_base_url}#{path_prefix}#{file}#L#{line_number})"
end
|