Class: GitlabQuality::TestTooling::CodeCoverage::ResponsibilityClassifier

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab_quality/test_tooling/code_coverage/responsibility_classifier.rb

Constant Summary collapse

RESPONSIBLE =
'responsible'
DEPENDENT =
'dependent'

Instance Method Summary collapse

Constructor Details

#initialize(test_to_sources, responsible_patterns:, dependent_patterns:) ⇒ ResponsibilityClassifier

Returns a new instance of ResponsibilityClassifier.

Parameters:

  • test_to_sources (Hash<String, Array<String>>)

    Test files mapped to source files they cover

  • responsible_patterns (Array<Regexp>)

    Patterns for unit tests

  • dependent_patterns (Array<Regexp>)

    Patterns for integration/E2E tests



13
14
15
16
17
# File 'lib/gitlab_quality/test_tooling/code_coverage/responsibility_classifier.rb', line 13

def initialize(test_to_sources, responsible_patterns:, dependent_patterns:)
  @test_to_sources = test_to_sources
  @responsible_patterns = responsible_patterns
  @dependent_patterns = dependent_patterns
end

Instance Method Details

#classify_testsHash<String, String>

Classifies each test file as responsible or dependent

Returns:

  • (Hash<String, String>)

    Test file path => classification



21
22
23
24
25
# File 'lib/gitlab_quality/test_tooling/code_coverage/responsibility_classifier.rb', line 21

def classify_tests
  @test_to_sources.keys.each_with_object({}) do |test_file, result|
    result[test_file] = classify_test(test_file)
  end
end