Module: IntegrationTestsRails::Istanbul::Collector
- Defined in:
- lib/integration_tests_rails/istanbul/collector.rb
Overview
Collects reports and manages instrumented files.
Class Method Summary collapse
Class Method Details
.collect(page) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/integration_tests_rails/istanbul/collector.rb', line 28 def collect(page) coverage_data = page.evaluate_script('window.__coverage__') save_coverage_snapshot(coverage_data) if coverage_data.present? rescue StandardError => e Util.log "Coverage collection failed: #{e.message}" end |
.generate_report ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/integration_tests_rails/istanbul/collector.rb', line 35 def generate_report # Generate report using Node.js (will merge all snapshot files) report_script = build_report_script output = `node -e #{Shellwords.escape(report_script)} 2>&1`.strip # Parse and display coverage summary return if output.blank? begin data = JSON.parse(output) puts "\nJavaScript Coverage: #{data['covered']} / #{data['total']} LOC (#{data['pct']}%) covered." puts "Coverage report: coverage/javascript/index.html\n" rescue JSON::ParserError puts output end end |
.restore_original_files ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/integration_tests_rails/istanbul/collector.rb', line 52 def restore_original_files config = IntegrationTestsRails.configuration backup_dir = config.backup_path source_dir = config.source_path return unless Dir.exist?(backup_dir) FileUtils.rm_rf(source_dir) FileUtils.cp_r(backup_dir, source_dir) Util.log '✓ Restored original JavaScript files' end |
.setup ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/integration_tests_rails/istanbul/collector.rb', line 13 def setup config = IntegrationTestsRails.configuration # Instrument files Instrumenter.instrument_all # Backup and replace original files backup_and_replace_files # Clean previous coverage data coverage_dir = config.coverage_dir FileUtils.rm_rf(coverage_dir) FileUtils.mkdir_p(coverage_dir) end |