Module: AeTestCoverage::TestCoverageMethods
- Defined in:
- lib/ae_test_coverage/test_coverage_methods.rb
Instance Method Summary collapse
- #cleanup_stubs ⇒ Object
- #coverage_file_name ⇒ Object
- #coverage_path ⇒ Object
- #name_of_test ⇒ Object
- #start_recording_code_coverage ⇒ Object
- #trim_front(str, max_length) ⇒ Object
- #write_code_coverage_artifact ⇒ Object
Instance Method Details
#cleanup_stubs ⇒ Object
56 57 58 59 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 56 def cleanup_stubs File.unstub(:open) File.unstub(:directory?) end |
#coverage_file_name ⇒ Object
45 46 47 48 49 50 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 45 def coverage_file_name basename = "#{self.class.name}__#{name_of_test}.json".tr(' /', '__') max_filename_length = 255 basename = trim_front(basename, max_filename_length - coverage_path.length) File.join(coverage_path, basename) end |
#coverage_path ⇒ Object
41 42 43 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 41 def coverage_path AeTestCoverage.config.coverage_path end |
#name_of_test ⇒ Object
37 38 39 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 37 def name_of_test method_name end |
#start_recording_code_coverage ⇒ Object
5 6 7 8 9 10 11 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 5 def start_recording_code_coverage if AeTestCoverage.enabled? AeTestCoverage.coverage_collectors.each do |coverage_collector_class, coverage_collector| coverage_collector.on_start end end end |
#trim_front(str, max_length) ⇒ Object
52 53 54 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 52 def trim_front(str, max_length) str.length > max_length ? str[-max_length...] : str end |
#write_code_coverage_artifact ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/ae_test_coverage/test_coverage_methods.rb', line 13 def write_code_coverage_artifact if AeTestCoverage.enabled? cleanup_stubs test_filename = method(name_of_test).source_location[0] FileUtils.mkdir_p(coverage_path) f = File.open(coverage_file_name, 'w') cleaned_coverage = {}.tap do |cleaned| AeTestCoverage.coverage_collectors.values.each do |coverage_collector| coverage_collector.covered_files.each do |covered_file, coverage_data| next if AeTestCoverage.exclude_file?(covered_file) cleaned[covered_file] ||= {} cleaned[covered_file][coverage_collector.class.name] = coverage_data end end end coverage_file_data = { filename: test_filename, coverage: cleaned_coverage } f.write(coverage_file_data.to_json) f.close end end |