Class: AffectedTests::Engine::Coverage
- Inherits:
-
Object
- Object
- AffectedTests::Engine::Coverage
- Defined in:
- lib/affected_tests/engine/coverage.rb
Instance Method Summary collapse
- #add(caller, callee) ⇒ Object
- #cache ⇒ Object
- #checkpoint(target_test_path) ⇒ Object
- #dump ⇒ Object
- #import(target_test_path, used_file_paths) ⇒ Object
-
#initialize(config) ⇒ Coverage
constructor
A new instance of Coverage.
- #start_trace ⇒ Object
- #stop_trace ⇒ Object
- #tracing? ⇒ Boolean
Constructor Details
#initialize(config) ⇒ Coverage
Returns a new instance of Coverage.
6 7 8 9 10 |
# File 'lib/affected_tests/engine/coverage.rb', line 6 def initialize(config) @config = config ::Coverage.start(lines: true) end |
Instance Method Details
#add(caller, callee) ⇒ Object
51 52 53 54 |
# File 'lib/affected_tests/engine/coverage.rb', line 51 def add(caller, callee) cache[callee] ||= Set.new cache[callee].add(caller) end |
#cache ⇒ Object
56 57 58 |
# File 'lib/affected_tests/engine/coverage.rb', line 56 def cache Thread.current[:cache] ||= {} end |
#checkpoint(target_test_path) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/affected_tests/engine/coverage.rb', line 25 def checkpoint(target_test_path) result = ::Coverage.result(stop: false, clear: true) actual_used = result.select do |_file_path, coverage| coverage[:lines].any? { |line| line && line > 0 } end import(target_test_path, actual_used.keys) end |
#dump ⇒ Object
60 61 62 63 64 |
# File 'lib/affected_tests/engine/coverage.rb', line 60 def dump ::Coverage.result(stop: true, clear: true) cache.transform_values(&:to_a) end |
#import(target_test_path, used_file_paths) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/affected_tests/engine/coverage.rb', line 33 def import(target_test_path, used_file_paths) = used_file_paths.select do |file_path| @config.target_path?(file_path) end formatted_target_test_path = @config.format_path(target_test_path) .each do |path| formatted_path = @config.format_path(path) next if formatted_path.start_with?(@config.test_dir_path) if formatted_path != formatted_target_test_path add(formatted_target_test_path, formatted_path) end end end |
#start_trace ⇒ Object
12 13 14 15 |
# File 'lib/affected_tests/engine/coverage.rb', line 12 def start_trace # Clear buffer in coverage ::Coverage.result(stop: false, clear: true) end |
#stop_trace ⇒ Object
17 18 19 |
# File 'lib/affected_tests/engine/coverage.rb', line 17 def stop_trace # Do nothing end |
#tracing? ⇒ Boolean
21 22 23 |
# File 'lib/affected_tests/engine/coverage.rb', line 21 def tracing? ::Coverage.running? end |