class SimpleCov::Formatter::JSONFormatter
Public Instance Methods
format(result)
click to toggle source
# File lib/simplecov-json.rb, line 6 def format(result) data = {} data[:timestamp] = result.created_at.to_i data[:command_name] = result.command_name data[:files] = [] result.files.each do |sourceFile| next unless result.filenames.include? sourceFile.filename # Compatible with older versions of simplecov. coverage_data = (defined? sourceFile.coverage) ? sourceFile.coverage : sourceFile.coverage_data data[:files] << { filename: sourceFile.filename, covered_percent: sourceFile.covered_percent, coverage: coverage_data, covered_strength: sourceFile.covered_strength.nan? ? 0.0 : sourceFile.covered_strength, covered_lines: sourceFile.covered_lines.count, lines_of_code: sourceFile.lines_of_code, } end data[:metrics] = { covered_percent: result.covered_percent, covered_strength: result.covered_strength.nan? ? 0.0 : result.covered_strength, covered_lines: result.covered_lines, total_lines: result.total_lines } json = data.to_json File.open(output_filepath, "w+") do |file| file.puts json end puts output_message(result) json end
output_filename()
click to toggle source
# File lib/simplecov-json.rb, line 44 def output_filename 'coverage.json' end
output_filepath()
click to toggle source
# File lib/simplecov-json.rb, line 48 def output_filepath File.join(output_path, output_filename) end
output_message(result)
click to toggle source
# File lib/simplecov-json.rb, line 52 def output_message(result) "Coverage report generated for #{result.command_name} to #{output_filepath}. #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered." end
Private Instance Methods
output_path()
click to toggle source
# File lib/simplecov-json.rb, line 58 def output_path SimpleCov.coverage_path end