Sha256: 89927a19a420ba49138e13106ffbf711bcbb0e9a04084c15e53567f54451c28d
Contents?: true
Size: 1.65 KB
Versions: 2
Compression:
Stored size: 1.65 KB
Contents
require 'simplecov' require 'json' class SimpleCov::Formatter::JSONFormatter 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 def output_filename 'coverage.json' end def output_filepath File.join(output_path, output_filename) end 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 def output_path SimpleCov.coverage_path end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
simplecov-json-0.2.3 | lib/simplecov-json.rb |
simplecov-json-0.2.2 | lib/simplecov-json.rb |