Class: Henitai::PerTestCoverageSelector
- Inherits:
-
Object
- Object
- Henitai::PerTestCoverageSelector
- Defined in:
- lib/henitai/per_test_coverage_selector.rb
Overview
Narrows candidate test files using the per-test coverage report.
Instance Method Summary collapse
- #filter(tests, mutant, reports_dir:) ⇒ Object
-
#initialize(coverage_report_reader: CoverageReportReader.new) ⇒ PerTestCoverageSelector
constructor
A new instance of PerTestCoverageSelector.
Constructor Details
#initialize(coverage_report_reader: CoverageReportReader.new) ⇒ PerTestCoverageSelector
Returns a new instance of PerTestCoverageSelector.
6 7 8 |
# File 'lib/henitai/per_test_coverage_selector.rb', line 6 def initialize(coverage_report_reader: CoverageReportReader.new) @coverage_report_reader = coverage_report_reader end |
Instance Method Details
#filter(tests, mutant, reports_dir:) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/henitai/per_test_coverage_selector.rb', line 10 def filter(tests, mutant, reports_dir:) candidates = Array(tests) return candidates if candidates.empty? return candidates unless location_available?(mutant) return candidates unless per_test_coverage_available?(reports_dir) covered_tests = candidates.select do |test| covers_mutant?(test, mutant, reports_dir) end covered_tests.empty? ? candidates : covered_tests end |