From 3e67b10710774badc81c8d5feb63dee1eb10f7fa Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:19:52 -0500 Subject: [PATCH 1/8] add "rake" as a development dependency so you can run the tests with "bundle exec" --- simplecov-json.gemspec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/simplecov-json.gemspec b/simplecov-json.gemspec index b779fb6..04fb2d7 100644 --- a/simplecov-json.gemspec +++ b/simplecov-json.gemspec @@ -16,6 +16,8 @@ Gem::Specification.new do |s| s.test_files = ['test/helper', 'test/test_simplecov_json.rb'] s.require_paths = ["lib"] - s.add_dependency(%q, [">= 0"]) - s.add_dependency(%q, [">= 0"]) + s.add_dependency "simplecov" + s.add_dependency "json" + + s.add_development_dependency "rake" end From e464bd6cf3121d11680c942863f39dfa043de26d Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:20:10 -0500 Subject: [PATCH 2/8] correct the name of "test/helper.rb" in the gemspec --- simplecov-json.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simplecov-json.gemspec b/simplecov-json.gemspec index 04fb2d7..ef4c153 100644 --- a/simplecov-json.gemspec +++ b/simplecov-json.gemspec @@ -13,7 +13,7 @@ Gem::Specification.new do |s| s.rubyforge_project = "simplecov-json" s.files = ['lib/simplecov-json.rb'] - s.test_files = ['test/helper', 'test/test_simplecov_json.rb'] + s.test_files = ['test/helper.rb', 'test/test_simplecov_json.rb'] s.require_paths = ["lib"] s.add_dependency "simplecov" From 483350ac9ab9e225def1619aaefc089767995e8e Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:20:31 -0500 Subject: [PATCH 3/8] satisfy mocha deprecation notice: require "mocha/setup" --- test/helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/helper.rb b/test/helper.rb index df6ee5f..ab1710c 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -4,7 +4,7 @@ require 'simplecov' require 'simplecov-json' require 'test/unit' -require 'mocha' +require 'mocha/setup' class Test::Unit::TestCase end From eb44a4920f609cfaa72d55e886acf69772b08bb7 Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:22:54 -0500 Subject: [PATCH 4/8] extract File.join(output_path, output_file_name) to existing method --- lib/simplecov-json.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index 874be89..68e700f 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -22,7 +22,8 @@ class SimpleCov::Formatter::JSONFormatter covered_lines: result.covered_lines, total_lines: result.total_lines, } - File.open(File.join(output_path, output_filename), "w+") do |file| + + File.open(output_filepath, "w+") do |file| file.puts data.to_json end puts output_message(result) From dc62eda478958b3542fdc270811bd336b0a7c345 Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:23:10 -0500 Subject: [PATCH 5/8] get rid of trailing commas --- lib/simplecov-json.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index 68e700f..dd1e1f0 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -12,7 +12,7 @@ class SimpleCov::Formatter::JSONFormatter next unless result.filenames.include? filename data[:files] << { filename: filename, - coverage: coverage, + coverage: coverage } end data[:groups] = result.groups @@ -20,7 +20,7 @@ class SimpleCov::Formatter::JSONFormatter covered_percent: result.covered_percent, covered_strength: result.covered_strength, covered_lines: result.covered_lines, - total_lines: result.total_lines, + total_lines: result.total_lines } File.open(output_filepath, "w+") do |file| From 0ff743fbd3dfb341f366d742e8c6001b3921f88c Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:24:32 -0500 Subject: [PATCH 6/8] only call .to_json once --- lib/simplecov-json.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index dd1e1f0..a89984e 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -23,11 +23,14 @@ class SimpleCov::Formatter::JSONFormatter total_lines: result.total_lines } + json = data.to_json + File.open(output_filepath, "w+") do |file| - file.puts data.to_json + file.puts json end puts output_message(result) - data.to_json + + json end def output_filename From e4d8b177b180df411d86c9562ce7cdeeb5c4c98b Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:25:37 -0500 Subject: [PATCH 7/8] omit groups: these render the entire source of the files and dramatically increases the size of coverage.json --- lib/simplecov-json.rb | 1 - test/test_simplecov_json.rb | 2 -- 2 files changed, 3 deletions(-) diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index a89984e..1b105a0 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -15,7 +15,6 @@ class SimpleCov::Formatter::JSONFormatter coverage: coverage } end - data[:groups] = result.groups data[:metrics] = { covered_percent: result.covered_percent, covered_strength: result.covered_strength, diff --git a/test/test_simplecov_json.rb b/test/test_simplecov_json.rb index c39b77d..ff2c6ac 100644 --- a/test/test_simplecov_json.rb +++ b/test/test_simplecov_json.rb @@ -16,7 +16,6 @@ class TestSimpleCovHtml < Test::Unit::TestCase result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb']) result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb']) result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb']) - result.expects(:groups).returns(['controllers', 'models']) result.expects(:covered_percent).returns(73.33) result.expects(:covered_strength).returns(0.87) result.expects(:covered_lines).returns(11) @@ -34,7 +33,6 @@ class TestSimpleCovHtml < Test::Unit::TestCase {'filename' => '/lib/foo.rb', 'coverage' => [1, nil, 0, 0, nil, 1, nil]}, {'filename' => '/lib/bar.rb', 'coverage' => [nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil]}, ], - 'groups' =>['controllers', 'models'], 'metrics' => { 'covered_percent' => 73.33, 'covered_strength' => 0.87, From ad09e37eebbbb177fbc5e65bdd3db80cc997c6a6 Mon Sep 17 00:00:00 2001 From: Robert Lail Date: Mon, 18 Mar 2013 19:25:58 -0500 Subject: [PATCH 8/8] misc --- lib/simplecov-json.rb | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index 1b105a0..cad43ce 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -2,14 +2,15 @@ require 'simplecov' require 'json' class SimpleCov::Formatter::JSONFormatter + def format(result) - puts result.inspect data = {} data[:timestamp] = result.created_at.to_i data[:command_name] = result.command_name data[:files] = [] - result.original_result.each do |filename,coverage| + result.original_result.each do |filename, coverage| next unless result.filenames.include? filename + data[:files] << { filename: filename, coverage: coverage @@ -27,26 +28,28 @@ class SimpleCov::Formatter::JSONFormatter 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 + +private def output_path SimpleCov.coverage_path end + end