Merge pull request #4 from vicentllongo/schmutz

Merge schmutz/master
This commit is contained in:
Vicent Llongo 2013-07-20 01:05:36 -07:00
commit 4a5b842def
4 changed files with 89 additions and 16 deletions

32
Gemfile.lock Normal file
View File

@ -0,0 +1,32 @@
GIT
remote: https://github.com/colszowka/simplecov
revision: d4ed33b3876fe6f1e808bed60e134e2f8adf6267
specs:
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
PATH
remote: .
specs:
simplecov-json (0.1.3)
json
simplecov
GEM
remote: https://rubygems.org/
specs:
json (1.7.7)
metaclass (0.0.1)
mocha (0.12.7)
metaclass (~> 0.0.1)
multi_json (1.3.6)
simplecov-html (0.7.1)
PLATFORMS
ruby
DEPENDENCIES
mocha
simplecov!
simplecov-json!

View File

@ -8,17 +8,20 @@ class SimpleCov::Formatter::JSONFormatter
data[:timestamp] = result.created_at.to_i
data[:command_name] = result.command_name
data[:files] = []
result.original_result.each do |filename, coverage|
next unless result.filenames.include? filename
result.files.each do |sourceFile|
next unless result.filenames.include? sourceFile.filename
data[:files] << {
filename: filename,
coverage: coverage
filename: sourceFile.filename,
covered_percent: sourceFile.covered_percent,
coverage: sourceFile.coverage,
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,
covered_strength: result.covered_strength.nan? ? 0.0 : result.covered_strength,
covered_lines: result.covered_lines,
total_lines: result.total_lines
}

View File

@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
Gem::Specification.new do |s|
s.name = "simplecov-json"
s.version = '0.1.2'
s.version = '0.1.3'
s.platform = Gem::Platform::RUBY
s.authors = ["Vicent Llongo"]
s.email = ["villosil@gmail.com"]

View File

@ -4,16 +4,35 @@ class TestSimpleCovHtml < Test::Unit::TestCase
def test_format
formatter = SimpleCov::Formatter::JSONFormatter.new
result = mock()
foo = mock()
bar = mock()
created_at = DateTime.now.to_s
result.expects(:created_at).returns(created_at)
result.expects(:command_name).returns('RSpec')
result.expects(:original_result).returns({
'/lib/foo.rb' => [1, nil, 0, 0, nil, 1, nil],
'/lib/bar.rb' => [nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil],
'/test/test.rb' => [nil, 1, 1, 1, 1]
})
result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb'])
fooLineList = mock()
fooLineList.expects(:count).returns(2)
barLineList = mock()
barLineList.expects(:count).returns(5)
foo.expects(:filename).returns('/lib/foo.rb')
foo.expects(:filename).returns('/lib/foo.rb')
foo.expects(:covered_percent).returns(50.0)
foo.expects(:coverage).returns([1, nil, 0, 0, nil, 1, nil])
foo.expects(:covered_strength).returns(0.50)
foo.expects(:covered_lines).returns(fooLineList)
foo.expects(:lines_of_code).returns(4)
bar.expects(:filename).returns('/lib/bar.rb')
bar.expects(:filename).returns('/lib/bar.rb')
bar.expects(:covered_percent).returns(71.42)
bar.expects(:coverage).returns([nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil])
bar.expects(:covered_strength).returns(0.71)
bar.expects(:covered_lines).returns(barLineList)
bar.expects(:lines_of_code).returns(7)
result.expects(:files).returns([foo, bar])
result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb'])
result.expects(:filenames).returns(['/lib/foo.rb', '/lib/bar.rb'])
result.expects(:covered_percent).returns(73.33)
@ -26,12 +45,31 @@ class TestSimpleCovHtml < Test::Unit::TestCase
result.expects(:total_lines).returns(15)
result.expects(:covered_percent).returns(73.33)
# filename
# covered_percent
# coverage
# covered_strength
# covered_lines
# lines_of_code
assert_equal(formatter.format(result), {
'timestamp' => created_at.to_i,
'command_name' => 'RSpec',
'files' => [
{'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/foo.rb',
'covered_percent' => 50.0,
'coverage' => [1, nil, 0, 0, nil, 1, nil],
'covered_strength' => 0.50,
'covered_lines' => 2,
'lines_of_code' => 4
},
{'filename' => '/lib/bar.rb',
'covered_percent' => 71.42,
'coverage' => [nil, 1, nil, 1, 1, 1, 0, 0, nil, 1, nil],
'covered_strength' => 0.71,
'covered_lines' => 5,
'lines_of_code' => 7
},
],
'metrics' => {
'covered_percent' => 73.33,