Class: GitlabQuality::TestTooling::Report::GroupIssues::FailureProcessor
- Inherits:
-
Object
- Object
- GitlabQuality::TestTooling::Report::GroupIssues::FailureProcessor
- Defined in:
- lib/gitlab_quality/test_tooling/report/group_issues/failure_processor.rb
Constant Summary collapse
- DEFAULT_MIN_FAILURES =
2
Instance Method Summary collapse
- #filter_groups_by_threshold(grouped_failures) ⇒ Object
-
#initialize(options = {}) ⇒ FailureProcessor
constructor
A new instance of FailureProcessor.
- #process_failures(failures) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ FailureProcessor
Returns a new instance of FailureProcessor.
10 11 12 13 14 15 |
# File 'lib/gitlab_quality/test_tooling/report/group_issues/failure_processor.rb', line 10 def initialize( = {}) @options = @pattern_matcher = [:pattern_matcher] || ErrorPatternMatcher.new @normalizer = [:normalizer] || ErrorMessageNormalizer.new @config = [:config] || {} end |
Instance Method Details
#filter_groups_by_threshold(grouped_failures) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/gitlab_quality/test_tooling/report/group_issues/failure_processor.rb', line 29 def filter_groups_by_threshold(grouped_failures) min_failures = @config.dig(:thresholds, :min_failures_to_group) || DEFAULT_MIN_FAILURES grouped_failures.select! do |_fingerprint, grouped_failure| grouped_failure[:failures].size >= min_failures end Runtime::Logger.info "Found #{grouped_failures.size} groups after filtering" end |
#process_failures(failures) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gitlab_quality/test_tooling/report/group_issues/failure_processor.rb', line 17 def process_failures(failures, &) Runtime::Logger.info "Processing #{failures.size} failures for grouping..." grouped_failures = {} failures.each do |failure| process_single_failure(failure, grouped_failures) end Runtime::Logger.info "Found #{grouped_failures.size} groups before filtering" grouped_failures.each_value(&) end |