simplecov-rcov-text 0.0.2
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/.gitignore +3 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +12 -0
- data/README.rdoc +58 -0
- data/Rakefile +8 -0
- data/lib/simplecov-rcov-text.rb +48 -0
- data/lib/simplecov-rcov-text/version.rb +8 -0
- data/simplecov-rcov-text.gemspec +25 -0
- data/test/fixtures/some_class.rb +9 -0
- data/test/test_simplecov-rcov-text.rb +37 -0
- metadata +69 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
= Simplecov Rcov Formatter Text
|
2
|
+
|
3
|
+
The target of this formatter is to cheat on *metric_fu* so it's possible to use simplecov instead rcov.
|
4
|
+
|
5
|
+
= Install
|
6
|
+
gem install simplecov-rcov-text
|
7
|
+
|
8
|
+
= Usage
|
9
|
+
|
10
|
+
Add the gem to the Gemfile preferably in the group test:
|
11
|
+
gem 'simplecov', :require => false
|
12
|
+
gem 'simplecov-rcov-text', :require => false
|
13
|
+
|
14
|
+
Create a .metrics file in the root of project with the code:
|
15
|
+
MetricFu::Configuration.run do |config|
|
16
|
+
config.rcov[:external] = 'coverage/rcov/rcov.txt'
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
And follow the instructions of Simplecov[https://github.com/colszowka/simplecov] and metric_fu[https://github.com/jscruggs/metric_fu] or metrical[https://github.com/iain/metrical].
|
21
|
+
|
22
|
+
== Simplest way
|
23
|
+
require 'simplecov'
|
24
|
+
require 'simplecov-rcov-text'
|
25
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovTextFormatter
|
26
|
+
|
27
|
+
== Using with HTML Format
|
28
|
+
require 'simplecov'
|
29
|
+
require 'simplecov-rcov-text'
|
30
|
+
class SimpleCov::Formatter::MergedFormatter
|
31
|
+
def format(result)
|
32
|
+
SimpleCov::Formatter::HTMLFormatter.new.format(result)
|
33
|
+
SimpleCov::Formatter::RcovTextFormatter.new.format(result)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
SimpleCov.formatter = SimpleCov::Formatter::MergedFormatter
|
37
|
+
|
38
|
+
== Running metric_fu/metrical
|
39
|
+
Be sure that you configured simplecov and simplecov-rcov-text.
|
40
|
+
|
41
|
+
Run your test framework, example:
|
42
|
+
rspec spec
|
43
|
+
|
44
|
+
After that you can run the metric_fu/metrical command.
|
45
|
+
|
46
|
+
<b>Don't forget to configure .metrics file!</b>
|
47
|
+
-----
|
48
|
+
= Example of generated file
|
49
|
+
metric_fu shift the first line
|
50
|
+
class SomeClass
|
51
|
+
def method_1
|
52
|
+
1+1
|
53
|
+
end
|
54
|
+
|
55
|
+
def method_2 ( value )
|
56
|
+
!! value * value
|
57
|
+
end
|
58
|
+
end
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup(:default)
|
3
|
+
require 'cgi'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'time'
|
6
|
+
|
7
|
+
unless defined?(SimpleCov)
|
8
|
+
raise RuntimeError, "simplecov-rcov-text is a formatter for simplecov. Please update your test helper and gemfile to require 'simplecov'!"
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
class SimpleCov::Formatter::RcovTextFormatter
|
13
|
+
def format( result )
|
14
|
+
FileUtils.mkdir_p(SimpleCov::Formatter::RcovTextFormatter.output_path)
|
15
|
+
|
16
|
+
File.open(File.join(SimpleCov::Formatter::RcovTextFormatter.output_path, SimpleCov::Formatter::RcovTextFormatter.file_name), "w+") do |rcov|
|
17
|
+
rcov << create_content(result)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_content(result)
|
22
|
+
content = "metric_fu shift the first line\n"
|
23
|
+
result.source_files.each do |source_file|
|
24
|
+
content << "=" * 80
|
25
|
+
content << "\n #{simple_file_name(source_file)}\n"
|
26
|
+
content << "=" * 80
|
27
|
+
content << "\n"
|
28
|
+
source_file.lines.each do |line|
|
29
|
+
content << (line.missed? ? '!!' : ' ')
|
30
|
+
content << " #{line.src.chomp}\n"
|
31
|
+
end
|
32
|
+
content << "\n"
|
33
|
+
end
|
34
|
+
content
|
35
|
+
end
|
36
|
+
|
37
|
+
def simple_file_name(source_file)
|
38
|
+
source_file.filename.gsub(SimpleCov.root, '.')
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.file_name
|
42
|
+
"rcov.txt"
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.output_path
|
46
|
+
File.join( SimpleCov.coverage_path, "/rcov" )
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "simplecov-rcov-text/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "simplecov-rcov-text"
|
7
|
+
s.version = SimpleCov::Formatter::RcovTextFormatter::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["William 'Kina'"]
|
10
|
+
s.email = ["thekina@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/kina/simplecov-rcov-text"
|
12
|
+
s.summary = %q{A Simplecov Formatter}
|
13
|
+
s.description = %q{Just a Simplecov Formatter to cheat metric_fu.
|
14
|
+
Generate a rcov.txt file.}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
|
19
|
+
s.rubyforge_project = "simplecov-rcov-text"
|
20
|
+
|
21
|
+
s.files = `git ls-files`.split("\n")
|
22
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
24
|
+
s.require_paths = ["lib"]
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'minitest/unit'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'simplecov'
|
4
|
+
|
5
|
+
require 'simplecov-rcov-text'
|
6
|
+
|
7
|
+
class TestSimpleCovFormatterRcovTextFormatter < MiniTest::Unit::TestCase
|
8
|
+
def setup
|
9
|
+
@rcov_file = File.join( SimpleCov::Formatter::RcovTextFormatter.output_path, SimpleCov::Formatter::RcovTextFormatter.file_name)
|
10
|
+
@result = SimpleCov::Result.new(
|
11
|
+
{
|
12
|
+
File.expand_path( File.join( File.dirname( __FILE__ ), 'fixtures', 'some_class.rb' ) ) =>
|
13
|
+
[1,1,1,1,nil,1,0,1,1]
|
14
|
+
}
|
15
|
+
)
|
16
|
+
|
17
|
+
|
18
|
+
end
|
19
|
+
def test_format
|
20
|
+
if File.exists?( @rcov_file )
|
21
|
+
File.delete( @rcov_file )
|
22
|
+
end
|
23
|
+
|
24
|
+
SimpleCov::Formatter::RcovTextFormatter.new.format( @result )
|
25
|
+
|
26
|
+
assert File.exists?( @rcov_file )
|
27
|
+
|
28
|
+
end
|
29
|
+
def test_create_content
|
30
|
+
content = SimpleCov::Formatter::RcovTextFormatter.new.create_content( @result )
|
31
|
+
test = "\="*80
|
32
|
+
assert_match /#{test}/,content
|
33
|
+
|
34
|
+
assert_match /!! value \* value/,content
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: simplecov-rcov-text
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.2
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- William 'Kina'
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-04-28 00:00:00 -03:00
|
14
|
+
default_executable:
|
15
|
+
dependencies: []
|
16
|
+
|
17
|
+
description: |-
|
18
|
+
Just a Simplecov Formatter to cheat metric_fu.
|
19
|
+
Generate a rcov.txt file.
|
20
|
+
email:
|
21
|
+
- thekina@gmail.com
|
22
|
+
executables: []
|
23
|
+
|
24
|
+
extensions: []
|
25
|
+
|
26
|
+
extra_rdoc_files:
|
27
|
+
- README.rdoc
|
28
|
+
files:
|
29
|
+
- .gitignore
|
30
|
+
- Gemfile
|
31
|
+
- Gemfile.lock
|
32
|
+
- README.rdoc
|
33
|
+
- Rakefile
|
34
|
+
- lib/simplecov-rcov-text.rb
|
35
|
+
- lib/simplecov-rcov-text/version.rb
|
36
|
+
- simplecov-rcov-text.gemspec
|
37
|
+
- test/fixtures/some_class.rb
|
38
|
+
- test/test_simplecov-rcov-text.rb
|
39
|
+
has_rdoc: true
|
40
|
+
homepage: https://github.com/kina/simplecov-rcov-text
|
41
|
+
licenses: []
|
42
|
+
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options: []
|
45
|
+
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: "0"
|
60
|
+
requirements: []
|
61
|
+
|
62
|
+
rubyforge_project: simplecov-rcov-text
|
63
|
+
rubygems_version: 1.6.2
|
64
|
+
signing_key:
|
65
|
+
specification_version: 3
|
66
|
+
summary: A Simplecov Formatter
|
67
|
+
test_files:
|
68
|
+
- test/fixtures/some_class.rb
|
69
|
+
- test/test_simplecov-rcov-text.rb
|