Merge remote-tracking branch 'houstonmc/master' into houstonmc

This commit is contained in:
Vicent Llongo 2013-07-20 09:35:04 +03:00
commit 9f351db06c
4 changed files with 24 additions and 18 deletions

View File

@ -2,48 +2,54 @@ require 'simplecov'
require 'json' require 'json'
class SimpleCov::Formatter::JSONFormatter class SimpleCov::Formatter::JSONFormatter
def format(result) def format(result)
puts result.inspect
data = {} data = {}
data[:timestamp] = result.created_at.to_i data[:timestamp] = result.created_at.to_i
data[:command_name] = result.command_name data[:command_name] = result.command_name
data[:files] = [] data[:files] = []
result.original_result.each do |filename,coverage| result.original_result.each do |filename, coverage|
next unless result.filenames.include? filename next unless result.filenames.include? filename
data[:files] << { data[:files] << {
filename: filename, filename: filename,
coverage: coverage, coverage: coverage
} }
end end
data[:groups] = result.groups
data[:metrics] = { data[:metrics] = {
covered_percent: result.covered_percent, covered_percent: result.covered_percent,
covered_strength: result.covered_strength, covered_strength: result.covered_strength,
covered_lines: result.covered_lines, 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 end
puts output_message(result) puts output_message(result)
data.to_json
json
end end
def output_filename def output_filename
'coverage.json' 'coverage.json'
end end
def output_filepath def output_filepath
File.join(output_path, output_filename) File.join(output_path, output_filename)
end end
def output_message(result) 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." "Coverage report generated for #{result.command_name} to #{output_filepath}. #{result.covered_lines} / #{result.total_lines} LOC (#{result.covered_percent.round(2)}%) covered."
end end
private private
def output_path def output_path
SimpleCov.coverage_path SimpleCov.coverage_path
end end
end end

View File

@ -16,6 +16,8 @@ Gem::Specification.new do |s|
s.test_files = ['test/helper.rb', 'test/test_simplecov_json.rb'] s.test_files = ['test/helper.rb', 'test/test_simplecov_json.rb']
s.require_paths = ["lib"] s.require_paths = ["lib"]
s.add_dependency(%q<simplecov>, [">= 0"]) s.add_dependency "simplecov"
s.add_dependency(%q<json>, [">= 0"]) s.add_dependency "json"
s.add_development_dependency "rake"
end end

View File

@ -4,7 +4,7 @@ require 'simplecov'
require 'simplecov-json' require 'simplecov-json'
require 'test/unit' require 'test/unit'
require 'mocha' require 'mocha/setup'
class Test::Unit::TestCase class Test::Unit::TestCase
end end

View File

@ -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(: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_percent).returns(73.33)
result.expects(:covered_strength).returns(0.87) result.expects(:covered_strength).returns(0.87)
result.expects(:covered_lines).returns(11) 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/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]}, {'filename' => '/lib/bar.rb', 'coverage' => [nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil]},
], ],
'groups' =>['controllers', 'models'],
'metrics' => { 'metrics' => {
'covered_percent' => 73.33, 'covered_percent' => 73.33,
'covered_strength' => 0.87, 'covered_strength' => 0.87,