simplecov-csv 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest +10 -0
- data/README.rdoc +18 -0
- data/Rakefile +13 -0
- data/lib/simplecov-csv.rb +34 -0
- data/simplecov-csv.gemspec +34 -0
- data/test/fixtures/app/controllers/sample_controller.rb +10 -0
- data/test/fixtures/app/models/user.rb +10 -0
- data/test/fixtures/results.csv +4 -0
- data/test/fixtures/sample.rb +10 -0
- data/test/helper.rb +11 -0
- data/test/simplecov-csv_test.rb +30 -0
- metadata +97 -0
data/Manifest
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
= SimpleCov CSV Formatter gem
|
2
|
+
|
3
|
+
== Install
|
4
|
+
|
5
|
+
$ [sudo] gem install simplecov_csv
|
6
|
+
|
7
|
+
== Usage
|
8
|
+
require 'simplecov_csv'
|
9
|
+
SimpleCov.formatter = SimpleCov::Formatter::CSVFormatter
|
10
|
+
|
11
|
+
== TODO
|
12
|
+
The actual version generates only one simple CSV file.
|
13
|
+
|
14
|
+
== Credits
|
15
|
+
|
16
|
+
Author:: Fernando Guillen: http://fernandoguillen.info
|
17
|
+
Copyright:: Copyright (c) 2010 Fernando Guillen
|
18
|
+
License:: Released under the MIT license.
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('simplecov-csv', '0.1.3') do |p|
|
6
|
+
p.description = "CSV formatter for SimpleCov"
|
7
|
+
p.url = "http://github.com/fguillen/simplecov-csv"
|
8
|
+
p.author = "Fernando Guillen http://fernandoguillen.info"
|
9
|
+
p.email = "fguillen.mail@gmail.com"
|
10
|
+
p.ignore_pattern = ["tmp/*", "script/*"]
|
11
|
+
p.development_dependencies = []
|
12
|
+
p.runtime_dependencies = ['simplecov']
|
13
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
class SimpleCov::Formatter::CSVFormatter
|
2
|
+
RESULT_FILE_NAME = "results.csv"
|
3
|
+
|
4
|
+
def format( result )
|
5
|
+
csv = "File,% covered,Lines,Relevant Lines,Lines covered,Lines missed\n"
|
6
|
+
|
7
|
+
result.files.each do |file|
|
8
|
+
csv << "\"#{shortened_filename file}\","
|
9
|
+
csv << "#{file.covered_percent.round.to_s},"
|
10
|
+
csv << "#{file.lines.count},"
|
11
|
+
csv << "#{file.covered_lines.count + file.missed_lines.count},"
|
12
|
+
csv << "#{file.covered_lines.count},"
|
13
|
+
csv << "#{file.missed_lines.count}\n"
|
14
|
+
end
|
15
|
+
|
16
|
+
result_file_path = File.join( SimpleCov.coverage_path, SimpleCov::Formatter::CSVFormatter.result_file_name )
|
17
|
+
File.open( result_file_path, "w" ) do |file_result|
|
18
|
+
file_result.write csv
|
19
|
+
end
|
20
|
+
puts "Coverage report generated for #{result.command_name} to #{result_file_path}"
|
21
|
+
|
22
|
+
return csv
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def shortened_filename(source_file)
|
28
|
+
source_file.filename.gsub(SimpleCov.root, '.')
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.result_file_name
|
32
|
+
SimpleCov::Formatter::CSVFormatter::RESULT_FILE_NAME
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{simplecov-csv}
|
5
|
+
s.version = "0.1.3"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Fernando Guillen http://fernandoguillen.info"]
|
9
|
+
s.date = %q{2010-10-11}
|
10
|
+
s.description = %q{CSV formatter for SimpleCov}
|
11
|
+
s.email = %q{fguillen.mail@gmail.com}
|
12
|
+
s.extra_rdoc_files = ["README.rdoc", "lib/simplecov-csv.rb"]
|
13
|
+
s.files = ["Manifest", "README.rdoc", "Rakefile", "lib/simplecov-csv.rb", "test/fixtures/app/controllers/sample_controller.rb", "test/fixtures/app/models/user.rb", "test/fixtures/results.csv", "test/fixtures/sample.rb", "test/helper.rb", "test/simplecov-csv_test.rb", "simplecov-csv.gemspec"]
|
14
|
+
s.homepage = %q{http://github.com/fguillen/simplecov-csv}
|
15
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Simplecov-csv", "--main", "README.rdoc"]
|
16
|
+
s.require_paths = ["lib"]
|
17
|
+
s.rubyforge_project = %q{simplecov-csv}
|
18
|
+
s.rubygems_version = %q{1.3.7}
|
19
|
+
s.summary = %q{CSV formatter for SimpleCov}
|
20
|
+
s.test_files = ["test/simplecov-csv_test.rb"]
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
+
s.specification_version = 3
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_runtime_dependency(%q<simplecov>, [">= 0"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
30
|
+
end
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<simplecov>, [">= 0"])
|
33
|
+
end
|
34
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'mocha'
|
4
|
+
require 'simplecov'
|
5
|
+
|
6
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
|
+
require 'simplecov-csv'
|
9
|
+
|
10
|
+
class Test::Unit::TestCase
|
11
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "#{File.dirname(__FILE__)}/helper"
|
2
|
+
|
3
|
+
class SimplecovCsvFormatterTest < Test::Unit::TestCase
|
4
|
+
def test_format
|
5
|
+
SimpleCov.stubs( :coverage_path ).returns( "/tmp" )
|
6
|
+
SimpleCov::Formatter::CSVFormatter.stubs( :result_file_name ).returns( 'coverage_test_results.csv' )
|
7
|
+
if File.exists?( "/#{SimpleCov.coverage_path}/#{SimpleCov::Formatter::CSVFormatter.result_file_name}" )
|
8
|
+
File.delete( "/#{SimpleCov.coverage_path}/#{SimpleCov::Formatter::CSVFormatter.result_file_name}" )
|
9
|
+
end
|
10
|
+
|
11
|
+
@original_result = {
|
12
|
+
source_fixture( 'sample.rb' ) => [nil, 1, 1, 1, nil, nil, 1, 1, nil, nil],
|
13
|
+
source_fixture( 'app/models/user.rb' ) => [nil, 1, 1, 1, nil, nil, 1, 0, nil, nil],
|
14
|
+
source_fixture( 'app/controllers/sample_controller.rb' ) => [nil, 1, 1, 1, nil, nil, 0, 0, nil, nil]
|
15
|
+
}
|
16
|
+
|
17
|
+
@result = SimpleCov::Result.new(@original_result)
|
18
|
+
csv_result = SimpleCov::Formatter::CSVFormatter.new().format( @result )
|
19
|
+
|
20
|
+
File.readlines( source_fixture( 'results.csv' ) ).each do |line|
|
21
|
+
assert_match( line.gsub( /^"\./, '' ), csv_result )
|
22
|
+
end
|
23
|
+
|
24
|
+
assert( File.exists?( "/#{SimpleCov.coverage_path}/#{SimpleCov::Formatter::CSVFormatter::RESULT_FILE_NAME}" ) )
|
25
|
+
end
|
26
|
+
|
27
|
+
def source_fixture( filename )
|
28
|
+
File.expand_path( File.join( File.dirname( __FILE__ ), 'fixtures', filename ) )
|
29
|
+
end
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simplecov-csv
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Fernando Guillen http://fernandoguillen.info
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-10-11 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: simplecov
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description: CSV formatter for SimpleCov
|
36
|
+
email: fguillen.mail@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- README.rdoc
|
43
|
+
- lib/simplecov-csv.rb
|
44
|
+
files:
|
45
|
+
- Manifest
|
46
|
+
- README.rdoc
|
47
|
+
- Rakefile
|
48
|
+
- lib/simplecov-csv.rb
|
49
|
+
- test/fixtures/app/controllers/sample_controller.rb
|
50
|
+
- test/fixtures/app/models/user.rb
|
51
|
+
- test/fixtures/results.csv
|
52
|
+
- test/fixtures/sample.rb
|
53
|
+
- test/helper.rb
|
54
|
+
- test/simplecov-csv_test.rb
|
55
|
+
- simplecov-csv.gemspec
|
56
|
+
has_rdoc: true
|
57
|
+
homepage: http://github.com/fguillen/simplecov-csv
|
58
|
+
licenses: []
|
59
|
+
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options:
|
62
|
+
- --line-numbers
|
63
|
+
- --inline-source
|
64
|
+
- --title
|
65
|
+
- Simplecov-csv
|
66
|
+
- --main
|
67
|
+
- README.rdoc
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 11
|
85
|
+
segments:
|
86
|
+
- 1
|
87
|
+
- 2
|
88
|
+
version: "1.2"
|
89
|
+
requirements: []
|
90
|
+
|
91
|
+
rubyforge_project: simplecov-csv
|
92
|
+
rubygems_version: 1.3.7
|
93
|
+
signing_key:
|
94
|
+
specification_version: 3
|
95
|
+
summary: CSV formatter for SimpleCov
|
96
|
+
test_files:
|
97
|
+
- test/simplecov-csv_test.rb
|