diff --git a/lib/simplecov-json.rb b/lib/simplecov-json.rb index 874be89..cad43ce 100644 --- a/lib/simplecov-json.rb +++ b/lib/simplecov-json.rb @@ -2,48 +2,54 @@ 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, + coverage: coverage } end - data[:groups] = result.groups data[:metrics] = { 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(File.join(output_path, output_filename), "w+") do |file| - file.puts data.to_json + + json = data.to_json + + File.open(output_filepath, "w+") do |file| + file.puts json end + puts output_message(result) - data.to_json + + 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 diff --git a/simplecov-json.gemspec b/simplecov-json.gemspec index 3b74e2c..e76f0bd 100644 --- a/simplecov-json.gemspec +++ b/simplecov-json.gemspec @@ -16,6 +16,8 @@ Gem::Specification.new do |s| s.test_files = ['test/helper.rb', '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 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 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,